05AB1E , 162 159 157 bajtów
Kod
Cholera, zbyt długo, ale to przynajmniej coś:
">:U"VI3Qið16×7166b1ð:0Y:DUJ,Yð13×JD?X,3838b1ð:0Y:D?X,16255b1ð:0Y:D?X,16367b1ð:0Y:4F?X,}ð21×Y3×J,}¹2Qið4×" U U"©J,"> :"®JD," > "?®,,ð6×'U3×J,}¹iY,}"quack
Wypróbuj online!
Wyjaśnienie
Istnieje pierwsza część kodu ">:U"V
, która ustawia Y
ten ciąg. Następnie sprawdzamy, czy dane wejściowe są równe 3. Jest to wykonywane na I3Qi
części. Jeśli są równe, drukujemy gigantyczną srokę:
N = 3
Najpierw zaczyna się od ð16×
tego, że popycha tylko 16 znaków spacji. Potem jest liczba 7166b
. To dotyczy tej ">:U "
części, z niewielką pomocą Retina :). Użyłem tego skryptu, aby przekonwertować ciąg na liczbę binarną. Następnie przechodzimy do 1ð:0Y:
części, która zastępuje każdą 1
spacją i każdą 0
z Y
ustawioną na >:U
. Po tym, D
uplicate ten ciąg, należy go przechowywać w X
użyciu U
i J
OIN stosie. Wstawiamy to za pomocą ,
, która wypisuje pełny ciąg z nową linią. Wszystkie pozostałe później oparte są na tym samym podmiocie. Instrukcja if kończy się na sekundę }
.
Pełną konwersję można znaleźć tutaj .
N = 2
Sprawdzamy teraz, czy dane wejściowe są równe 2. Odbywa się to na ¹2Qi
części. Następnie, jeśli są równe, naciskamy znak spacji 4 razy za pomocą ð4×
. Następnie popychamy " U U"
sznurek i przechowujemy go za pomocą ©
(pomysł rażąco skradziony z Jelly: p). Ponownie J
powiększamy stos i drukujemy go z nową linią. Następnie popychamy "> :"
ciąg, pobieramy za " U U"
pomocą ®
, umieszczamy J
na stosie i D
stosujemy ten ciąg i drukujemy oba w tym samym wierszu.
Krótki quiz, co to zrobi " > "?®,
:?
Po wydrukowaniu powyższego ciągu otrzymujemy duplikat drugiej linii twarzy i wydrukujemy ją (ponieważ jest taka sama jak druga linia).
Ostatnia część objęta tą sprawą to:
ð6×'U3×J,
ð6× # Push the space character × 6
'U3× # Push the "U" character three times
J, # Join and print pop with a newline
N = 1
Ten jest łatwiejszy do wyjaśnienia:
¹1QiY
¹1Qi # Check if the input is equal to 1
Y # Push the magpie face
# This is then implicitly printed
N = 0
¹0Qi"quack
¹0Qi # Check if the input is equal to 0
"quack # Weird sound what magpies make
# Implicitly printed