Da Sie kein Geld mehr haben, haben Sie sich dazu angemeldet, Donuts für The Donut Shop ™ zu bauen, das größte digitale Donut-Unternehmen der Welt, hauptsächlich, weil es Donuts jeder erdenklichen Größe verkauft.
Angesichts der Tatsache, dass Handelsstandards heutzutage sehr schwierig sind, müssen Sie einen Code schreiben, der so kurz wie möglich ist, um diese Donuts zu erstellen, damit der Quellcode, der sie erstellt hat, außerhalb des Pakets platziert werden kann.
Herausforderung
Bei 4 Eingaben, Radius des Außenrings, Radius des Innenrings, den möglichen Streuseln und der Wahrscheinlichkeit, dass eine Zelle streut, wird ein Ring ausgegeben, der mit den Streuseln bedeckt ist, die die richtigen Innen- und Außenradien aufweisen.
- Die Eingabe kann nach Belieben (Argumente zu einer Funktion, stdin, Programmargumente) und in beliebiger Reihenfolge erfolgen.
- Die Streusel werden in Form von 1 Zeichen pro Streuselart angegeben
^+*-
als bestreuen Eingabe wäre eine Liste von 4 besprüht sein,^
,+
,*
,-
- : Die Wahrscheinlichkeit eines Streuen wird als ein Gleitkommawert zwischen 0 und 1 zum Beispiel eingegeben werden
0.1
,0.23
- Sie müssen die Ausgabe als Standardausgabe oder gleichwertig ausdrucken.
- Streusel dürfen nicht an den Rändern des Donuts sein.
- Jede Art von Streuung muss die gleiche Wahrscheinlichkeit haben, in jeder Zelle zu sein.
- Die Radien sind in 1-Zellen-Einheiten angegeben.
- Wenn der innere Radius entweder 0 ODER der äußere Radius ist, hat der Ring keinen Ring.
- Beide Radien sind nicht negative ganze Zahlen.
- Die inneren und äußeren Ränder des Donuts müssen mit Hashes (
#
) dargestellt werden Ein Test, um zu sehen, ob sich ein Punkt in einem Kreis befindet, wenn ein Radius und der Mittelpunkt des Kreises gegeben sind:
(x-center)**2+(y-center)**2 < radius**2
Beispiel Eingabe mit Ausgabe
(Außenradius, Innenradius, Streusel, Streuwahrscheinlichkeit)
10, 4, ^ + * -, 0,1
######### # # ## ++ * *## # # # ^^ - * # # ##### ^ # #+ # # # # # #- # # # # * # # # #+ # # # # # #^ +# # # # # # # # * ##### # # + - # # ^ # ## ^ + ## # ^ # #########
5, 2, 0,9
##### #^^+ ^# #**### # #:# #^# #^# #*# #:# #*# #:+###* # # *:^:# #####
Dies ist Codegolf, die kürzeste Antwort in Bytes gewinnt
10, 4
und 5, 2
ziemlich unterschiedlich sind. Ich wollte einen Kommentar zu der Antwort hinterlassen, aber mir wurde klar, dass ich nicht wirklich verstand, wie die Ausgabe für alle Dimensionen aussehen sollte, außer für die in den Beispielen. Wenn Sie Ihre ursprüngliche Idee an die Ausgabe der Antwort anpassen möchten, liegt es an Ihnen, aber die Herausforderung sollte klar definieren, wie die Grenzen in beide Richtungen gezogen werden sollen.