Erinnerst du dich an die lustigen Windräder, auf denen du bläst und die sich immer wieder drehen? Code eins!
Bei einem Windrad werden die Zeichen in \ | / _
der Mitte und auf den Armen angezeigt . Ein mögliches Windrad könnte so aussehen:
|
|
|_ ___
___|_|
|
|
|
Aber was ist ein Windrad, das sich nicht dreht? Kein Spaß! Wir können es drehen, indem wir die Symbole neu anordnen:
/
\ /
\ /
\/\
\/\
/ \
/ \
/
Die Herausforderung besteht darin, ein Programm zu erstellen, das drei Ganzzahlen benötigt und ein Windrad wie unten angegeben ausgibt. Das erste ist die Anzahl der Arme, die es hat, das zweite ist die Länge der Windradarme, und das dritte ist die Häufigkeit, mit der es eine Achtelumdrehung im Uhrzeigersinn dreht.
Sie können folgendes annehmen:
- Die Anzahl der Arme wird immer 0, 1, 2, 4 oder 8 sein.
- Alle Arme sind gleichmäßig voneinander beabstandet.
Die anfängliche Position des Windrads hat die Mitte wie folgt:
_ |_|
Wenn die Anzahl der Arme 1 ist, können Sie entscheiden, in welche Richtung der Arm zeigt.
- Wenn die Anzahl der Arme 2 beträgt, können Sie festlegen, dass die Arme vertikal oder horizontal zeigen.
Sie können ein vollständiges Programm schreiben, das Eingaben über STDIN oder ein Befehlszeilenargument oder eine Funktion, die Eingaben über Funktionsargumente erhält, akzeptiert. Ihr Programm muss eine Folge von Ausgaben anzeigen, die das Durchdrehen des Windrads anzeigt, wobei jede durch mindestens eine Leerzeile getrennt ist. Die Mitte des Windrads sollte sich nicht um mehr als eine Stelle bewegen. Sie können beliebig viele führende und nachfolgende Leerzeichen ausgeben.
Hier sind einige Beispiele:
0 2 1
_
|_|
/\
\/
1 3 2
|
|
|_
|_|
/
/
/
/\
\/
_ ___
|_|
2 2 0
_ __
__|_|
8 4 1
\ | /
\ | /
\ | /
\|_/____
____|_|
/ |\
/ | \
/ | \
/ | \
| /
\ | /
\ | /
\ |/
____\/\____
\/\
/| \
/ | \
/ | \
/ |
Dies ist Codegolf, also gewinnt der kürzeste Code. Viel Glück!
1 3 5
und wenn der Arm anfänglich nach oben zeigt), müssen Leerzeichen in früheren Ausgaben vorangestellt werden, um dies zu berücksichtigen.