Wyzwanie
Biorąc pod uwagę dane wejściowe n
, wydrukuj n
wysokie warstwy ciasta artystycznego ASCII , oglądane z boku, z dwiema świecami na górze. Szczegółowe informacje znajdują się w poniższych przykładach.
Wynik
>> cake(1)
_|_|_
| |
+-----+
>> cake(3)
_|_|_
| |
+---------+
| |
+-------------+
| |
+-------------+
...i tak dalej.
Zasady
- Standardowe luki zabronione
- Spróbuj sprytnego rozwiązania
- To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach. Jednak odpowiedź nie zostanie wybrana.
Baw się dobrze!
code-golf
ascii-art
kolmogorov-complexity
dkudriavtsev
źródło
źródło
i=int(input())
int(input())
nainput()
orazprint
instrukcję, a także możesz zmienić cztery spacje na jeden (jeśli jest to tabulator, zmień go na spację, aby było bardziej oczywiste, że to jedna postać) . Ponadto z jakiegoś powodu liczba bajtów jest o 4 za wysoka.Rubin,
109107 bajtówźródło
Partia, 233 bajty
Krótszy niż Python? Coś musi być nie tak ...
źródło
JavaScript (ES6), 134 bajty
Ciasto rekurencyjne.
Próbny
źródło
Haskell, 103 bajty
Definiuje funkcję,
g
która zwraca listę ciągów znaków zawierających linie wynikuźródło
05AB1E,
115, 101 znakówZaoszczędź 14 znaków dzięki Adnan!
Zdecydowanie trochę miejsca na grę w golfa.
Wypróbuj online!
Zauważ, że spowoduje to wydrukowanie wszystkiego przesuniętego o jedną spację.
źródło
×
poleceniem. To jest przykład użycia.Python 2, 122 bajty
źródło
Python 3, 162 znaków
Nie jest to zbyt mądre, ale nigdy wcześniej tego nie robiłem. (Edycja: usunięto niepotrzebne nawiasy; zmniejszono o jeszcze jedną postać)
źródło
Pyth, 73 bajty
Program, który pobiera liczbę całkowitą na STDIN i wypisuje wynik.
Prawdopodobnie jest tu jeszcze trochę golfa.
Wypróbuj online
Wyjaśnienie nastąpi później
źródło
JavaScript (ES6), 171 bajtów
Pierwsze przejście, prawdopodobnie nie optymalne ...
źródło
PHP,
150147138136 136130140 bajtównowe podejście:
stara wersja w celach informacyjnych:
źródło
$argv
. : - /Vimscript,
116115 bajtówCałkiem niechlujny, ale działa!
Aby to nazwać:
call A(3)
w pustym miejscu buforze. Aby załadować funkcję,source cake.vim
Wyjaśnienie
2i+<Esc>5i-<Esc>
pisze pierwszą linię+-----+
o||<Esc>5i<Space><Esc>
dodaje| |
w drugiej liniiVkyjply4lpjy4hp
jest zapisany w makrze@z
- wizualnie wybiera obie linie, szarpa je, wkleja pod nimi i dodaje do nich 4 myślniki i spacje.#@z
powtarza się ten#
czasddl4x
usuwa ostatnie linie i usuwa kreski na dole ciasta, aby zrównał się z górną częścią dolnej warstwyggd$i_|_|_
zastępuje pierwszą linię na górze ciasta%ce
następnie wyśrodkowuje całe ciasto do szerokości dolnej warstwy! !źródło
SOGL V0.12 ,
2726 bajtówWypróbuj tutaj!
Wyjaśnienie:
źródło
Excel VBA,
139130127 bajtówAnonimowe bezpośrednie okno VBE, które pobiera dane z komórki
A1
i wysyła ciasto do bezpośredniego okna VBEźródło
CJam, 79 bajtów
Wypróbuj online
źródło
QBasic, 115 bajtów
Nie golfił
Wydrukuj górną linię ze świecami; następnie wydrukuj resztę ciasta po dwie linie na raz.
SPC
, użyte wPRINT
instrukcji, emituje określoną liczbę spacji. Dogodnie, gdy podaje się argument ujemny, traktuje go jako 0, więc fakt, żeindent - 2
jest-2
w ostatniej iteracji, nie stanowi problemu.STRING$
pobiera liczbę i kod znaku (tutaj 45 dla-
) i powtarza znak tyle razy. W tym przypadku musimy w specjalnym przypadku napisać ostatnią linię (kiedyi=n
) o 4 łączniki krótsze niż w innym przypadku.źródło
C (gcc) ,
158153 bajtów-5 bajtów dzięki pułapowi cat.
Wypróbuj online!
źródło