您的目标是输出ASCII艺术饼图。这是代码高尔夫,所以最短的程序(计算源代码的字节,而不是字符)获胜。
不允许使用任何外部软件或API。仅每种语言的母语。
圆的起始角度和方向(顺时针/逆时针)并不重要。输出可能看起来是椭圆形的,因为字符的高度始终大于其宽度。
“背景”(饼图的左侧或右侧的字符)必须为空格。
作为输入,您有三个变量(请发布代码以对其进行初始化。这些变量的初始化不计入分数):
k
:字符数组。每个字符都是饼图上必须使用的字符v
:浮点数数组。这是每个字符的百分比。的长度v
等于的长度k
。它的元素总和始终为1.0r
:整数> 1.这是饼图的半径。
奖励:如果您可以输出不完整的饼(如果),则减去分数的20%。
s=lambda k,v,a:' 'if not v else k[0]if a<v[0]else s(k[1:],v[1:],a-v[0])
并使用分号将if语句放在一行上,可以将其减少到231个字节if x*x+y*y<r*r:a=atan2(y,x)/pi/2+.5;t=t+s(k,v,a)