Il tuo compito: generare un fiocco di neve Koch all'ennesima profondità. Non è necessario creare un fiocco di neve Koch completo, solo un lato del triangolo iniziale. Wikipedia sui fiocchi di Koch: https://en.wikipedia.org/wiki/Koch_snowflake .
Regole:
- Il programma deve generare un lato del fiocco di neve di Koch all'ennesima profondità.
- L'output deve essere ASCII.
- È possibile generare l'intero fiocco di neve; questo non è richiesto.
- Si applicano le regole standard per input / output e scappatoie e cose.
- Gli spazi bianchi non contano, purché tutti i personaggi siano nel posto giusto l'uno rispetto all'altro.
- Vince il codice più corto!
Casi test:
n = 0:
__
n = 1:
__/\__
n = 2:
__/\__
\ /
__/\__/ \__/\__
n = 3:
__/\__
\ /
__/\__/ \__/\__
\ /
/_ _\
\ /
__/\__ __/ \__ __/\__
\ / \ / \ /
__/\__/ \__/\__/ \__/\__/ \__/\__
Spero che abbia senso. Si noti che in ciascun caso di test, il frattale può essere diviso in tre parti uguali in lunghezza. Si noti inoltre che la larghezza di ciascun fiocco di neve è tre volte la larghezza della generazione precedente del fiocco di neve.
__/\__
con due sottolineature, che ha reso ogni iterazione costantemente 3 volte più grande della precedente. L'uso di una sola sottolineatura sembra dare delle contraddizioni che iniziano a diventare davvero imbarazzanti in n = 3. Ad esempio, le parti esterne hanno larghezza 12 mentre la parte centrale ha solo larghezza 10, in conseguenza di /_
e _\
che sono troppo strette. E anche prima si sta _
espandendo al doppio della larghezza di /
e \
.
/_
e _\
siano l'unica parte davvero fatale: i caratteri di sottolineatura devono andare, perché devono essere nella stessa posizione di /
e \
. Una volta fatto, le cose possono espandersi di 3 volte da n = 1 in poi (ma n = 0 non si adatta.)