Inspirowany filmem z YouTube'a od innego użytkownika PPCG ...
Twoim wyzwaniem jest użycie ASCII-artu do narysowania ściany zamku Minecraft z Andezytu i Diorite. Kształt ściany jest zbiór Cantora . Dla porównania zestaw kantora wykonuje się powtarzając N razy:
- Potrójny bieżący krok
- Zastąp środkową pustą spacją
- Dodaj pełną linię poniżej
Spowoduje to utworzenie następujących czterech pierwszych kroków:
*
* *
***
* * * *
*** ***
*********
* * * * * * * *
*** *** *** ***
********* *********
***************************
Twoje wyzwanie nie jest jednak takie proste. Widzisz, gdy zestaw kantora staje się naprawdę duży, nudne jest patrzenie na tę samą postać powtarzaną w kółko. Zamierzamy to zmienić, nakładając naprzemiennie serię gwiazdek *
i znaków funta #
. Powinieneś naprzemiennie co trzy znaki w poziomie i w każdym rzędzie w pionie. (Oczywiście pozostawiając te same spacje) Na przykład drugim przykładem będzie:
* *
###
a trzecim przykładem będzie:
* * * *
### ###
***###***
Dla kompletności, oto przykłady cztery i pięć:
#4
* * * * * * * *
### ### ### ###
***###*** ***###***
###***###***###***###***###
#5
* * * * * * * * * * * * * * * *
### ### ### ### ### ### ### ###
***###*** ***###*** ***###*** ***###***
###***###***###***###***### ###***###***###***###***###
***###***###***###***###***###***###***###***###***###***###***###***###***###***
I jeden mega przykład, szósta iteracja:
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ###
***###*** ***###*** ***###*** ***###*** ***###*** ***###*** ***###*** ***###***
###***###***###***###***### ###***###***###***###***### ###***###***###***###***### ###***###***###***###***###
***###***###***###***###***###***###***###***###***###***###***###***###***###*** ***###***###***###***###***###***###***###***###***###***###***###***###***###***
###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###
Wyzwanie
Musisz napisać pełny program lub funkcję, która akceptuje dodatnią liczbę całkowitą dla danych wejściowych i generuje N -tą generację tego fraktala zamku Minecraft. Możesz przyjmować dane wejściowe i wyjściowe dowolną rozsądną metodą i nie musisz się martwić o nieprawidłowe dane wejściowe (takie jak liczby mniejsze niż 1, liczby zmiennoprzecinkowe, inne niż liczby itp.).
Najkrótsza odpowiedź mierzona w bajtach wygrywa!
Odpowiedzi:
Galaretka ,
433635 bajtówNa początek jestem pewien, że może być krótszy.
Wypróbuj online!
* W przypadku n > 5 Twoja przeglądarka może zawijać dane wyjściowe, ale jeśli skopiujesz i wkleisz je do edytora bez opakowania, zobaczysz odpowiednie dane wyjściowe.
Wyjaśnienie
źródło
JavaScript (ES7),
132125 bajtówGdzie
\n
reprezentuje dosłowny znak nowej linii. Wersja ES6 dla 141 bajtów:źródło
Python 2,
142138136 bajtówTo jest fragment kodu stąd , a następnie edytowany do tego wyzwania.
Wyjaśni później.
BTW, dwie spacje to tabulatory.
Edytuj 1: 4 bajty zapisane dzięki @DJMcMayhem.
Edytuj 2: 2 bajty zapisane dzięki @daHugLenny.
źródło
exec("s+=len(s)*' '+s;"*(n-i))
?Rubin,
115103102 bajtyNa podstawie rozwiązania jsvnm do standardowego zestawu golfowego Cantor .
-12 bajtów dzięki Jordanowi.
źródło
g=->{T.tr"*#","#*"}
s.map!{...}
zamiasts=s.map{...};s
.+
zmiany<<
i skończyłoby się na tej samej długości. Uważam, żes
nadal jest to konieczne na końcu, tak czy inaczej - mapa jest wewnątrz.times
pętli.J,
4745 bajtówNa podstawie mojego rozwiązania problemu z zestawem Cantor.
Stosowanie
Wyjaśnienie
źródło
PHP, 159 bajtów
awaria
źródło