Sfida
L'inverno si sta avvicinando rapidamente con molti luoghi che ricevono i primi strati di neve per la stagione 15/16, quindi perché non rompere le macchine da neve e programmare un po 'di neve?
Dato un numero intero n
tramite STDIN, genera una rappresentazione ASCII del fiocco di neve Beta (come descritto di seguito) a livello n
.
Beta's Snowflake
Il fiocco di neve inizia al livello 0 con una singola x:
x
Quindi, su ogni angolo aggiungi una di queste forme:
x
xx
Aggiungi la forma sopra a un angolo in alto a destra. Per un angolo in basso a destra, ruotarlo di 90 ° in senso orario, per in basso a sinistra, 180 ° in senso orario e per in alto a sinistra, 270 ° in senso orario.
Se lo fai, ottieni la seguente forma:
x x
xx xx
x
xx xx
x x
Prendi nota dell'orientamento delle forme. Proseguendo aggiungiamo più forme ad ogni angolo, usando le regole di orientamento sopra descritte, al diagramma per ottenere il livello 2:
x x x
xxxxxxx
xx x x xx
xxx xxx
xx x xx
xxx xxx
xx x x xx
xxxxxxx
x x x
Si noti che le forme vengono aggiunte solo a x
s con due o più lati esposti (che viene indicato come un angolo sopra).
Le L-forme possono e si sovrapporranno per valori n
superiori a 1. Ad esempio:
Se il livello 0 è:
x x
Quindi devono esserci sovrapposizioni nel livello 1 (indicato con un o
, non includere il o
nell'output):
x o x
xxxoxxx
x x
xxxoxxx
x o x
Il tuo compito è produrre questa rappresentazione ASCII del fiocco di neve di Beta.
indennità
Ci sarà un bonus di 50 ripetizioni per il programma più breve che, quando n
è negativo, genera il fiocco di neve (a livello n*-1
) come immagine o graficamente sullo schermo.
Potresti avere un programma separato per la taglia e l'attività principale.
vincente
Vince il programma più breve in byte.
2 or more exposed sides
regola? Supponendo centro è 0,0
quindi 1,1
, 1,-1
, -1,-1
, -1,1
tutti hanno 2 lati esposti (lati rivolti verso gli altri 4 punti). Non dovrebbero essere 3+ lati aperti per evitare di riempire? O in alternativa si espande solo se ha 0 o 1 vicini (cardinali).