Seu objetivo é produzir um gráfico de pizza de arte ASCII. Isso é código-golfe, então o programa mais curto (contando os bytes do código-fonte, não os caracteres) vence.
Nenhum software externo ou API é permitido. Somente os nativos de cada idioma.
O ângulo inicial e a direção (no sentido horário / anti-horário) do círculo não são importantes. A saída pode parecer oval porque a altura de um caractere é sempre superior à sua largura.
O "plano de fundo" (caracteres à esquerda ou à direita da torta) deve ser espaços.
Como entrada, você tem três variáveis (publique o código para inicializá-lo. A inicialização dessas variáveis não é contada em sua pontuação):
k
: Matriz de caracteres. Cada caractere é aquele que deve ser usado no gráfico de pizzav
: Matriz de carros alegóricos. É a porcentagem de cada personagem. O comprimento dev
é igual ao comprimento dek
. A soma dos seus elementos é sempre 1,0r
: Inteiro> 1. É o raio do gráfico de pizza.
Bônus: subtraia 20% da sua pontuação se conseguir gerar uma pizza incompleta (no caso de ).
s=lambda k,v,a:' 'if not v else k[0]if a<v[0]else s(k[1:],v[1:],a-v[0])
e usando um ponto e vírgula para colocar a instrução if em uma linhaif x*x+y*y<r*r:a=atan2(y,x)/pi/2+.5;t=t+s(k,v,a)