কোড গল্ফের 9 টি গর্ত - কিকফফ


12

ইতিমধ্যে 9 টি হোল চ্যালেঞ্জ হয়েছে (এবং অন্য একটি এখানে ), তবে এটি গত বছর খুব সুন্দর ছিল। এবং পাশাপাশি, আমি কেবল প্রায় 2 মাস ধরে ছিলাম (যদিও এটি চিরকালের মতো মনে হয়)। এবং এটি যথেষ্ট আলাদা।

লিডার বোর্ড: (নোট করুন যে গর্তগুলির জন্য ওজন এখনও প্রতিষ্ঠিত হয়নি)

+---------------+------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+
|Competitor     | Language   | Hole 1 | Hole 2 | Hole 3 | Hole 4 | Hole 5 | Hole 6 | Hole 7 | Hole 8 | Hole 9 | Total  |
+----------------------------------------------------------------------------------------------------------------------+
|Dennis         |CJam        |        | 31     |        |        |        |        |        |        |        | 31     |
+----------------------------------------------------------------------------------------------------------------------+
|Optimizer      |CJam        |        | 35     |        |        |        |        |        |        |        | 35     |
+----------------------------------------------------------------------------------------------------------------------+
|Martin Büttner |Mathematica |        | 222    |        |        |        |        |        |        |        | 222    |
+----------------------------------------------------------------------------------------------------------------------+
|Cameron        |Python      | 878    |        |        |        |        |        |        |        |        | 878    |
+----------------------------------------------------------------------------------------------------------------------+
|bubalou        |Processing 2| 717    |        |        |        |        |        |        |        |        | 717    |
+----------------------------------------------------------------------------------------------------------------------+
|Doorknob       |Python 2    |        |        |0.079711|        |        |        |        |        |        |0.079711|
+----------------------------------------------------------------------------------------------------------------------+
|Vulcan         |Java        |        |        |0.6949  |        |        |        |        |        |        |0.6949  |
+----------------------------------------------------------------------------------------------------------------------+
|Eli            |C++         |        |        |1.42042 |        |        |        |        |        |        |1.42042 |
+---------------+------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+

অন্যান্য গর্ত:

এটি ইদানীং এখানে প্রায় ধীর হয়ে গেছে, তাই আমি এখানে আমার পরবর্তী 9 টি গর্তের গল্ফ কোর্সটি সরিয়ে ফেলতে এসেছি, যা আমার (অভিজ্ঞ সীমাবদ্ধ) অভিজ্ঞতায় আমি এখানে যা দেখেছি তার সমস্ত বিস্ময়কর জড়িত। এটি আবশ্যক হবে:

  • আসকি শিল্প
  • গ্রাফিকাল আউটপুট
  • কনওয়ের গেম অফ লাইফ
  • পাহাড়ের রাজা
  • কোলমোগোরভ জটিলতা
  • Quines
  • চিত্র প্রক্রিয়াজাতকরণ
  • ম্যাথ
  • ক্লাসিক কোড গল্ফ।

আপনি সত্যিই কি করতে পারেন তা দেখার জন্য আমি অপেক্ষা করছি!

প্রতিযোগিতা বিধি

  • আপনি সমস্ত গর্তের জন্য 1 টি ভাষা বেছে নেবেন (এতে আপনি অংশ নিচ্ছেন ... আরও তথ্যের জন্য পয়েন্ট 4 দেখুন)।
  • সমস্ত গর্তের জন্য - স্ট্যান্ডার্ড লুফোলগুলি (এখনও) মজার নয়।
  • পরবর্তী চ্যালেঞ্জটি উপস্থিত হবে যখন আমি দেখব যে যুক্তিসঙ্গত সময়ের জন্য যথেষ্ট পরিমাণ জমা দেওয়া আছে। পাহাড়ের রাজা, উদাহরণস্বরূপ, আরও বেশি সময় লাগবে।
  • আপনাকে সমস্ত গর্তে অংশ নিতে হবে না । যদি আপনি একটি গর্তটি বিশেষত চ্যালেঞ্জিং মনে করেন, এটি করার সময় নেবেন না, ইত্যাদি, আপনি সর্বনিম্ন স্কোরের চেয়ে 2 গুণ বেশি পয়েন্ট পাবেন। দয়া করে 12 টি অক্ষরের সাথে 1 গল্ফস্ক্রিপ্ট উত্তর রেখে এবং 24 কে স্কোর হিসাবে নিয়ে এই নিয়মের সদ্ব্যবহার করবেন না।

স্কোরিং

  • আপনার স্কোর সমস্ত গর্ত থেকে স্কোর সমাপ্তির উপর ভিত্তি করে
  • সর্বনিম্ন স্কোর জয় (বাস্তব গল্ফ অনুযায়ী)
  • লিডারবোর্ড এই পৃষ্ঠার শীর্ষে স্থাপন করা হবে

আমি যথাসাধ্য চেষ্টা করব যাতে কোনও প্রশ্নই সদৃশ হয় না, সমস্ত প্রশ্নের উদ্দেশ্যগত মানদণ্ড থাকে, ভাল লেখা থাকে এবং পুরো প্রতিযোগিতার প্রসঙ্গে সেগুলির (অপেক্ষাকৃত) সমান ওজন আছে তা নিশ্চিত করার জন্য আমি যথাসাধ্য চেষ্টা করব।

তবে, আমি ব্যর্থ হলে দয়া করে ধৈর্য ধরুন।

এবং, আরও অ্যাডো ছাড়া, প্রথম চ্যালেঞ্জ!

প্লাজমা গ্লোব

একটি রক্তরস গ্লোব সবার প্রিয় খেলনা হল:

এখানে চিত্র বর্ণনা লিখুন

আপনার কাজ এটি এক আঁকতে।

আপনার অবশ্যই একটি বেস আঁকা উচিত:

এখানে চিত্র বর্ণনা লিখুন

একটি গ্লোব:

এখানে চিত্র বর্ণনা লিখুন

একটি টেসলা জিনিস (?)

এখানে চিত্র বর্ণনা লিখুন

এবং, অবশ্যই, শীতল প্লাজমা অঙ্কুর:

এখানে চিত্র বর্ণনা লিখুন

যাইহোক, আপনি যখন প্লাজমা গ্লোব (বা উইকিপিডিয়া আমাকে বলছেন হিসাবে চালক বস্তু) এর কাছে আপনার হাত রাখেন তখন এটি রক্তরসকে আকর্ষণ করে

আপনার গ্লোব এটি প্রতিফলিত করা উচিত।

এটি পরিমাণগতভাবে রাখতে, আপনার গ্লোবটিতে সর্বাধিক 16 টি অঙ্কুর রয়েছে (উপরে চিত্র দেখুন)। পৃথিবীর উপরিভাগের একটি "অবজেক্ট" (রেডিয়ানের একটি কোণ দ্বারা প্রদত্ত) "পরিবাহী শক্তি", অর্থাত, এটি যে পরিমাণে বিম আকর্ষণ করে তা থাকবে contain সুতরাং 5 টির পাওয়ার সহ একটি অবজেক্ট 5 টি বীমকে আকর্ষণ করবে (5 পুরুত্বের একক লাইন) 11 টি রেখে বাকি পৃথিবীর মধ্যে সমানভাবে ছড়িয়ে পড়বে :

এখানে চিত্র বর্ণনা লিখুন

দ্রষ্টব্য যে
১. মাঝখানে কালো বৃত্তটি প্লাজমার
২ এর উপরে থেকে যায় that উদাহরণস্বরূপ, কোণটি পাই / ২ হবে।

আপনার একাধিক পরিবাহী অবজেক্ট থাকতে পারে এবং সেই ইভেন্টে অঙ্কুরগুলিও সমানভাবে দূরে রাখা দরকার হয় না। তবে এগুলি তুলনামূলকভাবে ব্যবধানে বাইরে out উদাহরণস্বরূপ, এটি 2 টি অবজেক্টের জন্য ঠিক আছে, 1 কোণে পাই / 4 পাওয়ার 5 এবং অন্যটি 5pi / 3 পাওয়ার 3:

এখানে চিত্র বর্ণনা লিখুন

আপনি অঙ্কুর (প্লাজমা) এর শেষ পয়েন্টগুলির প্রতিটি দেখতে সক্ষম হবেন।

তবে, ১ than এরও বেশি পাওয়ার সহ একটি বস্তু (বা অবজেক্টের যোগফল) দেওয়া, পৃথিবী "ব্রেক" হবে:

এখানে চিত্র বর্ণনা লিখুন

মন্তব্য

  • পৃথিবীর ব্যাস বেসের দৈর্ঘ্যের চেয়ে 1.5 গুণ বড়, যা একটি বর্গক্ষেত্র
  • গ্লোবটি যখন ভেঙে যায় তখন গ্লোবটি ডানদিকে থাকে। এটি বেসের ডান পাশের পাশাপাশি স্থলভাগের স্পর্শকাতর। প্লাজমা গ্লোবটি যখন ভেঙে যায় তখন কোনও প্লাজমা থাকতে হবে না (কেন? অবশ্যই সুরক্ষা বৈশিষ্ট্য! এটি প্রথম স্থানে কীভাবে ভেঙেছিল সে সম্পর্কে কোনও শব্দ নেই।)
  • অঙ্কুর বাদে সবকিছুর রঙ অবশ্যই কালো এবং 1 পিক্সেল পুরু হতে হবে। 280, এবং সম্পৃক্তি / মান 100 ব্যবহার - রক্তরস রঙ রঙ 245 হয়েছে এই অধীনে "HSV" যদি আপনার কোন ধারণা কি আমি কথা বলছি না।

ইনপুট

ইনপুটটি STDIN / কমান্ড লাইন আরগস / যাই হোক না কেন বা ফাংশন আর্গুমেন্টের মাধ্যমে হতে পারে।

2 ইনপুট থাকতে হবে - প্লাজমা গ্লোব এর বেস দৈর্ঘ্য (ভেক্টর গ্রাফিক ব্যবহার করে একটি অক্ষ অন্তর্ভুক্ত), এবং এই জাতীয় বস্তুর একটি অ্যারে:

[[angle,power],[angle,power],[angle,power]]

সুতরাং কোনও অবজেক্টের জন্য নয় (16 লাইন সহ প্রথম ছবিটি দেখুন) ইনপুটটি হবে

100,[]

পরবর্তী (এক বস্তুর, শক্তি 5) এর জন্য এটি হবে:

100,[[1.570796,5]]

শেষ উদাহরণের জন্য:

100,[[0.785398,5],[5.23598,3]]

এটি কোড-গল্ফ, তাই বাইট জেতে সংক্ষিপ্ততম কোড ।


@ মার্টিনব্যাটনার যদি বেস-দৈর্ঘ্য আরও কম হয় চিত্রটি ছোট না হয় তবে একটি অক্ষ অন্তর্ভুক্ত
করুন

আপনার দ্বিতীয় উদাহরণে। যদি দ্বিতীয় বস্তুটি ছিল -3/8π? সেক্ষেত্রে এটি অন্য যে কোনও একটি বিমের সাথে ঠিক ওভারল্যাপ হবে। আমাদের কি এমন ক্ষেত্রে সমস্ত বীম ঘোরানো উচিত? যদি তা হয়, তবে আমার মনে হয় যে আপনাকে পৃথক বিমগুলি অবজেক্ট-প্ররোচিত বিমগুলি থেকে কত দূরে থাকা দরকার তা নির্দিষ্ট করে দেওয়া দরকার।
মার্টিন এন্ডার

1
এর .... উত্তর না থাকলেও কেন বোর্ডের "গর্ত 2" কলামটি ইতিমধ্যে পূরণ করা হচ্ছে?
xem

2
এটিকে আরও ভালভাবে কল্পনা করতে একটু সহায়তা: inear.se/plasmaball
CSᵠ

1
@ xem উম, গর্ত 2 এর উত্তর আছে, তবে কেন সেগুলি পোস্ট করবেন না? এটি অগত্যা যাতে চলতে হবে না ...
স্ট্রেচ পাগল

উত্তর:


4

প্রসেসিং 2 - 717 টি অক্ষর

যেহেতু প্রসেসিং শিল্পীদের জন্য তৈরি একটি ভাষা এবং আমি খুব শিক্ষানবিশ প্রোগ্রামার, তাই আমি এই চ্যালেঞ্জগুলির অনেকটিতে খুব ভাল করার আশা করি না। বলা হচ্ছে, প্রক্রিয়াজাতকরণে জিনিসগুলি আঁকানো কতটা সহজ তা আমি সত্যিই পছন্দ করি এবং এর সাথে আরও কিছুটা খেলতে পারা আমার অর্থ হয়েছে, সুতরাং এই চ্যালেঞ্জগুলি আকর্ষণীয় হওয়া উচিত।

int j,m,b,k,d,l;float w,c,h,x,y,z;float v[],p[],g[];void setup(){j=m=d=0;c=z=0;String i[]= loadStrings("f.txt");i[0]=i[0].replace("[","").replace("]","");String o[]=split(i[0],',');v=new float[o.length];p=new float[o.length-1];for(String s:o){if(!s.equals("")){v[j]=Float.parseFloat(s);}j++;}w=v[0];size((int)w*3,(int)w*3);h=w*.75;l=v.length;noLoop();}void draw(){translate(w/2,height);scale(1,-1);rect(0,0,w,w);if(l>2){while(m<j-1){m+=2;c+=v[m];}}if(c>16){ellipse(w+h,h,2*h,2*h);rect(w/2,w,1,h);}else{ellipse(w/2,w+h,2*h,2*h);rect(w/2,w,1,h);b=16;m=1;stroke(#1500ff);if(l>2){while(m<j){p[m-1]=cos(v[m])*h;p[m]=sin(v[m])*h;strokeWeight(v[m+1]);line(w/2,w+h,p[m-1]+w/2,p[m]+w+h);b-=v[m+1];m+=2;}}strokeWeight(1);c=(PI*2)/b;k=b;g=new float[b+b];while(b>0){g[d]=cos(z+c*b)*h;g[d+1]=sin(z+c*b)*h;m=0;if(l>2){while(m<j-1){if(abs(g[d]-p[m])<.1 && abs(g[d+1]-p[m+1])<.1){b=k+1;z=z+.1;d=-2;break;}m+=2;}}b--;d+=2;}d--;while(d>0){line(w/2,w+h,g[d]+w/2,g[d-1]+w+h);d-=2;}}stroke(#000000);fill(#000000);ellipse(w/2,w+h,w/9,w/9);}

আমি নিশ্চিত যে এটি যথেষ্ট গল্ফ করা যেতে পারে এবং আমার আরও সময় পেলে এটি করার চেষ্টা করতে পারি তবে আপাতত আমি এতে খুশি।

এর ইনপুট পেতে স্কেচের ডেটা ফোল্ডারে থাকা একটি ফাইল (f.txt) পড়ে। আমি ক্যামেরনগুলিকে বিনামূল্যে বিমগুলি স্থান পরিবর্তন করার ধারণাটি ব্যবহার করি যতক্ষণ না তারা ওভারল্যাপ না করে।

int j,m,b,k,d,l;
float w,c,h,x,y,z;
float v[],p[],g[];
void setup(){
j=m=d=0;
c=z=0;
String i[]= loadStrings("f.txt");
i[0]=i[0].replace("[","").replace("]","");
String o[]=split(i[0],',');
v=new float[o.length];
p=new float[o.length-1];
for(String s:o){if(!s.equals("")){v[j]=Float.parseFloat(s);}j++;}
w=v[0];
size((int)w*3,(int)w*3);
h=w*.75;
l=v.length;
noLoop();
}

void draw()
{
  translate(w/2,height);
  scale(1,-1);
  rect(0,0,w,w);
  if(l>2) 
  {
    while(m<j-1)
    {
      m+=2;
      c+=v[m];
    }
  }
  if(c>16)
  {
    ellipse(w+h,h,2*h,2*h);
    rect(w/2,w,1,h);
  }
  else
  {
    ellipse(w/2,w+h,2*h,2*h);
    rect(w/2,w,1,h);
    b=16;m=1;
    stroke(#1500ff);
    if(l>2)
    { 
      while(m<j)
      {
        p[m-1] = cos(v[m]) * h;
        p[m] = sin(v[m]) * h;
        strokeWeight(v[m+1]);
        line(w/2,w+h,p[m-1]+w/2,p[m]+w+h);
        b-=v[m+1];
        m+=2;
      }
    }
    strokeWeight(1);
    c=(PI*2)/b;
    k=b;
    g=new float[b+b];
    while(b>0)
    {
      g[d] = cos(z+c*b) * h;
      g[d+1] = sin(z+c*b) * h;
      m=0;
      if(l>2)
      {
        while(m<j-1)
        {
          if(abs(g[d]-p[m])<.1 && abs(g[d+1]-p[m+1])<.1)
          {
            b=k+1;
            z=z+.1;
            d=-2;
            break;
          }
          m+=2;
        }
      }
      b--;
      d+=2;
    }
    d--;
    while(d>0)
    {
      line(w/2,w+h,g[d]+w/2,g[d-1]+w+h);
      d-=2;
    }
  }
    stroke(#000000);
    fill(#000000);
    ellipse(w/2,w+h,w/9,w/9);
}

উদাহরণ:

100, [[0.785398,3], [5.23598,5]]

প্লাজমা অরব ঘ

100, []

প্লাজমা অরব 2

100, [[1.72398,12], [5.23598,5]]

প্লাজমা অরব 3

এখানে প্রক্রিয়াজাতকরণ পান


3

পাইথন, 878 টি অক্ষর

কোনওভাবেই এই গল্ফটি ভাল নয় তবে আমি এই গর্তটির জন্য একটি উত্তর দেখতে চাই।

import matplotlib.pyplot as P
from math import *
L=len
M=min
Y=P.plot
K=P.Circle
Z=P.gcf().gca().add_artist
f=sin
g=cos
k={'color':(0,0,0)}
j={'color':(.16,0,1)}
def Q(S,C):
    P.axis([-S,S*2.5,0,S*3.5],**k)
    Y([0,S,S,0,0],[0,0,S,S,0],**k)
    Y([S/2,S/2],[S,7*S/4],**k)
    Z(K([S/2,7*S/4],S/20,**k))

    k['fill']=False

    A,B=zip(*C)

    N=16-sum(B)
    if N<0:
        Z(K([7*S/4,3*S/4],3*S/4,**k))

    else:
        Z(K([S/2,7*S/4],3*S/4,**k))
        if L(C)==0:
            D(16,0,S)
        elif L(C)==1:
            D(N,A[0],S)
            Y([S/2,S/2+3*S*g(A[0])/4],[7*S/4,7*S/4+3*S*f(A[0])/4],linewidth=B[0],**j)
        else:
            for c in C:
                Y([S/2,S/2+3*S*g(c[0])/4],[7*S/4,7*S/4+3*S*f(c[0])/4],linewidth=c[1],**j)
            D(N,J(N,A),S)
    P.show()


def J(N,A):
    T=d=0
    t=2*pi/N
    while d<0.1:
        T+=0.1
        d=M(M(a-T-floor((a-T)/t)*t for a in A),\
            M(T+ceil((a-T)/t)*t-a for a in A))
    return T


def D(N,I,S):
    a=I
    for i in range(N):
        Y([S/2,S/2+3*S*g(a)/4],[7*S/4,7*S/4+3*S*f(a)/4],**j)
        a+=2*pi/N

এবং কিছু নমুনা আউটপুট

Q(100,[[pi/4,6],[-4.2*pi/8,1]])

এখানে চিত্র বর্ণনা লিখুন

Q(100,[[0.785398,10],[5.23598,7]])

এখানে চিত্র বর্ণনা লিখুন

Q(100,[[pi/4,3],[pi/2,3],[3*pi/2,2],[5*pi/4,2]])

এখানে চিত্র বর্ণনা লিখুন


এটি কীভাবে নিশ্চিত করে যে অবজেক্ট-প্ররোচিত এবং ফ্রি বিমগুলি কখনই ওভারল্যাপ হয় না?
মার্টিন এন্ডার

আমি সমানভাবে ব্যবধানযুক্ত মরীচিগুলিকে অল্প পরিমাণে ঘুরিয়ে দেব যতক্ষণ না আমি এমন একটি প্রাচ্য খুঁজে পাই যা নিশ্চিত করে যে বিমগুলি অন্তত 0.1 রেডিয়ানকে আলাদা করে রেখেছিল
ক্যামেরন

আহ, ঠিক আছে, আমি এরকম কিছু আশা করেছিলাম। স্পষ্ট করার জন্য ধন্যবাদ!
মার্টিন এন্ডার

এনপি, আমি যে কোনও অবজেক্ট-প্ররোচিত মরীচি এবং যে কোনও নিখরচায় রশ্মির মধ্যে ন্যূনতম দূরত্বকে কীভাবে সর্বাধিক করা যায় তা সমাধান করার চেষ্টা করছি, তবে এটি একটি কঠিন প্রশ্ন বলে মনে হচ্ছে
ক্যামেরন

1
A,B=zip(*C)কয়েক বাইট সংরক্ষণ করা উচিত
gnibbler

1

পাইথন 2.7, 378 375

from turtle import *;import sys
(s,P),A,B=eval(sys.argv[1]),90,180
n,S=sum([b for(a,b) in P]),.75*s;l=16-n
for i in 'abcd':fd(s);lt(A)
pu()
if l<0:goto(s+S,0)
else:goto(s/2,s)
pd();circle(S);pu();goto(s/2,s);lt(A);pd();fd(S)
def C():fd(S);fd(-S)
if n<16:
 color('blue')
 for i in range(l):rt(360/l);C()
 for a,p in P:pensize(p);rt(a*57.3);C()
color('black')
shape('circle')

এটি কমান্ডলাইন আর্গুমেন্ট থেকে এর পরামিতিগুলি পড়ে।

নমুনা চিত্র:

(পরামিতি = 100,[[0.785398,5],[5.23598,3]])

টেসলা

(পরামিতি = 100,[])

tesla2

(পরামিতি = 100,[[1.72398,12],[5.23598,5]])

tesla3


আমি এটি পরীক্ষা করতে সক্ষম হইনি, তবে এটি এখানে কিছুটা গল্ফ
0WJYxW9FMN
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.