Votre objectif est de générer un graphique circulaire ASCII. Il s'agit de code-golf, donc le programme le plus court (en comptant les octets du code source, pas les caractères) gagne.
Aucun logiciel ou API externe n'est autorisé. Seulement les natifs de chaque langue.
L'angle de départ et la direction (dans le sens horaire / antihoraire) du cercle ne sont pas importants. La sortie peut sembler ovale car la hauteur d'un caractère est toujours supérieure à sa largeur.
Le "fond" (caractères à gauche ou à droite de la tarte) doit être un espace.
En entrée, vous avez trois variables (veuillez poster le code pour l'initialiser. L'initialisation de ces variables n'est pas prise en compte dans votre score):
k
: Tableau de personnages. Chaque caractère est celui qui doit être utilisé sur le graphique à secteursv
: Tableau de flotteurs. C'est le pourcentage de chaque personnage. La longueur dev
est égale à la longueur dek
. La somme de ses éléments est toujours de 1,0r
: Entier> 1. C'est le rayon du graphique à secteurs.
s=lambda k,v,a:' 'if not v else k[0]if a<v[0]else s(k[1:],v[1:],a-v[0])
et en utilisant un point-virgule pour mettre l'instruction if sur une seule ligneif x*x+y*y<r*r:a=atan2(y,x)/pi/2+.5;t=t+s(k,v,a)
JavaScript, 259
Fonctionne dans le bloc-notes de Firefox.
Premier exemple
Contribution :
Production :
Deuxième exemple:
Contribution :
Production :
la source