Twoje zadanie: wygeneruj płatek śniegu Kocha na n-tej głębokości. Nie musisz tworzyć pełnego płatka śniegu Kocha, tylko jedną stronę trójkąta początkowego. Wikipedia na temat płatków Kocha: https://en.wikipedia.org/wiki/Koch_snowflake .
Zasady:
- Program musi wygenerować jedną stronę płatka śniegu Kocha na n-tej głębokości.
- Wyjściem musi być ASCII.
- Państwo może generować cały płatek śniegu; nie jest to wymagane.
- Obowiązują standardowe zasady dotyczące wejścia / wyjścia oraz luki i inne rzeczy.
- Biała spacja nie ma znaczenia, o ile wszystkie znaki znajdują się we właściwym miejscu względem siebie.
- Najkrótszy kod wygrywa!
Przypadki testowe:
n = 0:
__
n = 1:
__/\__
n = 2:
__/\__
\ /
__/\__/ \__/\__
n = 3:
__/\__
\ /
__/\__/ \__/\__
\ /
/_ _\
\ /
__/\__ __/ \__ __/\__
\ / \ / \ /
__/\__/ \__/\__/ \__/\__/ \__/\__
Mam nadzieję, że to ma sens. Zauważ, że w każdym przypadku testowym fraktal można podzielić na trzy części o równej długości. Zauważ również, że szerokość każdego płatka śniegu jest trzy razy większa niż szerokość poprzedniej generacji płatka śniegu.
__/\__
dwa podkreślenia, dzięki którym każda iteracja była 3 razy większa niż poprzednia. Używanie tylko jednego podkreślenia wydaje się dawać sprzeczności, które zaczynają być naprawdę niezręczne w n = 3. Np. Zewnętrzne części mają szerokość 12, podczas gdy środkowa część ma tylko szerokość 10, w wyniku czego /_
i _\
które są zbyt ciasne. A nawet wcześniej _
rozszerzasz do dwukrotnej szerokości /
i \
.
/_
i _\
to jedyny naprawdę krytyczny część - podkreślenia trzeba iść, ponieważ muszą być w tej samej pozycji jak /
i \
. Gdy to się stanie, rzeczy mogą wzrosnąć 3 razy od n = 1 (ale n = 0 nie pasuje.)