Ricordi quelle girandole divertenti su cui soffi e girano in tondo? Codificiamo uno!
Una girandola avrà l'insieme di caratteri che \ | / _
disegnano il suo centro e le braccia. Una possibile girandola potrebbe apparire così:
|
|
|_ ___
___|_|
|
|
|
Ma cos'è una girandola che non gira? Non è divertente! Possiamo farlo girare riordinando i simboli:
/
\ /
\ /
\/\
\/\
/ \
/ \
/
La sfida è quella di creare un programma che accetta tre numeri interi e genera una girandola come specificato di seguito. Il primo di questi è il numero di bracci che possiede, il secondo è la lunghezza dei bracci della girandola e il terzo è il numero di volte in cui gira un ottavo di giro in senso orario.
Puoi assumere quanto segue:
- Il numero di bracci sarà sempre 0, 1, 2, 4 o 8.
- Tutte le braccia saranno ugualmente distanziate l'una dall'altra.
La posizione iniziale della girandola avrà il suo centro in questo modo:
_ |_|
Se il numero di bracci è 1, puoi decidere in quale direzione punta il braccio.
- Se il numero di bracci è 2, puoi decidere di far puntare i bracci in verticale o in orizzontale.
È possibile scrivere un programma completo che accetta input tramite STDIN o argomento della riga di comando o una funzione che accetta input tramite argomenti della funzione. Il programma deve mostrare una sequenza di uscite che mostra la rotazione della girandola, ciascuna separata da almeno una riga vuota. Il centro della girandola non deve spostarsi di più di uno spazio. È possibile generare tutti gli spazi iniziali e finali necessari.
Ecco alcuni esempi:
0 2 1
_
|_|
/\
\/
1 3 2
|
|
|_
|_|
/
/
/
/\
\/
_ ___
|_|
2 2 0
_ __
__|_|
8 4 1
\ | /
\ | /
\ | /
\|_/____
____|_|
/ |\
/ | \
/ | \
/ | \
| /
\ | /
\ | /
\ |/
____\/\____
\/\
/| \
/ | \
/ | \
/ |
Questo è il codice golf, quindi vince il codice più breve. In bocca al lupo!
1 3 5
e il braccio inizialmente rivolto verso l'alto), gli spazi dovranno essere anteposti nelle uscite precedenti per adattarsi a questo.