Étant à court d'argent, vous vous êtes inscrit pour construire des beignets pour The Donut Shop ™, la plus grande entreprise de beignets numériques au monde, principalement parce qu'ils vendent toutes les tailles de beignets imaginables.
Maintenant, étant donné que les normes commerciales sont de nos jours très difficiles, vous devez écrire un morceau de code aussi court que possible pour créer ces beignets afin que le code source qui les a créés puisse être placé à l'extérieur du paquet.
Défi
Étant donné 4 entrées, le rayon de l'anneau extérieur, le rayon de l'anneau intérieur, les paillettes possibles et la chance d'une cellule ayant une paillette, sortez un beignet recouvert de ces paillettes qui a les rayons intérieurs et extérieurs corrects.
- L'entrée peut être prise comme vous le souhaitez (arguments d'une fonction, stdin, arguments du programme) et dans n'importe quel ordre.
- Les arrosages seront donnés sous forme de 1 caractère par type d'arrosage
^+*-comme entrée de saupoudrer serait une liste de 4 arrose,^,+,*,-- La chance d'un Saupoudrez sera entré comme une valeur en virgule flottante compris entre 0 et 1. par exemple:
0.1,0.23
- Vous devez imprimer la sortie sur stdout ou équivalent.
- Les paillettes ne peuvent pas être sur les bords du beignet.
- Chaque type de saupoudrage doit avoir une chance tout aussi probable d'être sur chaque cellule.
- Les rayons sont donnés en unités à 1 cellule.
- Si le rayon intérieur est égal à 0 OU au rayon extérieur, le beignet est dit sans anneau.
- Les deux rayons seront des entiers non négatifs.
- Les bords intérieurs et extérieurs du beignet doivent être représentés à l'aide de hachages (
#) Un test pour voir si un point est dans un cercle, étant donné un rayon et le centre du cercle est:
(x-center)**2+(y-center)**2 < radius**2
Exemple d'entrée avec sortie
(rayon extérieur, rayon intérieur, arrose, risque d'arroser)
10, 4, "^ + * -", 0,1
######### # # ## ++ * *## # # # ^^ - * # # ##### ^ # #+ # # # # # #- # # # # * # # # #+ # # # # # #^ +# # # # # # # # * ##### # # + - # # ^ # ## ^ + ## # ^ # #########5, 2, ": ^ + *", 0,9
##### #^^+ ^# #**### # #:# #^# #^# #*# #:# #*# #:+###* # # *:^:# #####
Ceci est le golf de code, la réponse la plus courte en octets gagne
10, 4et 5, 2sont assez différentes. J'allais laisser un commentaire sur la réponse, mais je me suis rendu compte que je ne comprenais pas vraiment à quoi la sortie devrait ressembler pour toutes les dimensions sauf celles des exemples. Si vous souhaitez faire en sorte que votre idée d'origine corresponde à la sortie de la réponse, cela ne dépend que de vous, mais le défi doit clairement définir comment tracer les frontières de toute façon.