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 ntramite 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 xs con due o più lati esposti (che viene indicato come un angolo sopra).
Le L-forme possono e si sovrapporranno per valori nsuperiori a 1. Ad esempio:
Se il livello 0 è:
x x
Quindi devono esserci sovrapposizioni nel livello 1 (indicato con un o, non includere il onell'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 sidesregola? Supponendo centro è 0,0quindi 1,1, 1,-1, -1,-1, -1,1tutti 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).