已经有了一个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洞的高尔夫球场,其中包括我在这里(虽然有限)所看到的一切。这将需要:
我真的很期待看到你能做些什么!
我将尽我最大的努力确保没有问题是重复的,所有的问题都有客观的标准,写得很好,并且在整个比赛中它们都有(相对的)同等的重要性。
但是,当我失败的时候,请耐心点。
而且,不要再费心了,这是第一个挑战!
血浆
等离子球是每个人最喜欢的玩具:

你的工作就是画一个。
你必须画一个底座:

地球仪:

特斯拉的东西(?)

当然,还有很酷的等离子拍摄:

然而,当你把你的手靠近一个等离子球(或者像维基百科告诉我的那样,一个传导的物体),它吸引等离子体。
你的地球仪应该能反映这一点。
从数量上说,你的地球仪最多有16张照片(见上图)。地球表面的“物体”(以弧度角度表示)将包含“传导功率”,即它所吸引的光束的数量。因此,一个功率为5的物体将吸引5束光束(一条厚度为5的单线),使11束均匀地分布在地球的其他地方:

请注意,
你可能有一个以上的导电物体,在这种情况下,它不要求芽是等距分开。然而,它们的距离相对较小。例如,对于2个对象来说,这是可以的,一个是π/4幂5,另一个是角5pi/3幂3:

你应该能够看到(等离子体)芽的每一个端点。
然而,如果一个物体(或物体之和)的功率大于16,地球将“破裂”:

输入可以通过STDIN/命令行args/任何方式,也可以通过函数参数。
应该有两个输入--等离子体地球仪底部的长度(如果使用矢量图形,则包括一个轴),以及如下所示的对象数组:
[[angle,power],[angle,power],[angle,power]]因此,对于没有对象(见第一张16行的图片),输入将是
100,[]对于下一个对象(一个对象,电源5),它将是:
100,[[1.570796,5]]最后一个例子是:
100,[[0.785398,5],[5.23598,3]]这是代码-高尔夫,所以最短的代码单位字节获胜。
发布于 2014-10-20 21:53:50
由于处理是为艺术家设计的一种语言,而且我是一个非常新手的程序员,所以我不希望在这些挑战中取得很好的成绩。话虽如此,我真的很喜欢在处理过程中画东西是多么简单,我一直想再玩一遍,所以这些挑战应该是有趣的。
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)以获取其输入。我用Camerons的想法把自由光束移到它们不重叠为止。
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,[]

100,[1.72398 12,5.23598 5]

获取处理这里
发布于 2014-10-18 06:17:44
这球打得不好,但我想看看这个洞的答案。
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]])
https://codegolf.stackexchange.com/questions/39748
复制相似问题