Su objetivo es generar un gráfico circular ASCII. Este es el código de golf, por lo que gana el programa más corto (contando los bytes del código fuente, no los caracteres).
No se permiten softwares externos o API. Solo los nativos de cada idioma.
El ángulo inicial y la dirección (en sentido horario / antihorario) del círculo no son importantes. La salida puede verse ovalada porque la altura de un personaje siempre es superior a su ancho.
El "fondo" (caracteres a la izquierda o a la derecha del pastel) deben ser espacios.
Como entrada, tiene tres variables (publique el código para inicializarlo. La inicialización de estas variables no se cuenta en su puntaje):
k
: Matriz de personajes. Cada personaje es el que debe usarse en el gráfico circularv
: Matriz de carrozas. Es el porcentaje de cada personaje. La longitud dev
es igual a la longitud dek
. La suma de sus elementos es siempre 1.0r
: Entero> 1. Es el radio del gráfico circular.
s=lambda k,v,a:' 'if not v else k[0]if a<v[0]else s(k[1:],v[1:],a-v[0])
y usando un punto y coma para colocar la instrucción if en una líneaif x*x+y*y<r*r:a=atan2(y,x)/pi/2+.5;t=t+s(k,v,a)