05AB1E , 162 159 157 Bytes
Code
Verdammt, viel zu lang, aber es ist wenigstens etwas:
">: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
Probieren Sie es online!
Erläuterung
Der erste Teil des Codes besteht aus ">:U"V
, der Y
auf diesen String gesetzt wird. Danach prüfen wir nur, ob die Eingabe gleich 3 ist. Das wird am I3Qi
Teil gemacht. Wenn gleich, drucken wir die Riesenelster:
N = 3
Es beginnt damit, ð16×
dass nur 16 Leerzeichen gedrückt werden. Danach gibt es eine Nummer 7166b
. Dies deckt den ">:U "
Teil mit ein wenig Hilfe von Retina ab :). Ich habe dieses Skript verwendet , um den String in eine Binärzahl umzuwandeln. Danach kommen wir zu dem 1ð:0Y:
Teil, der jedes 1
durch ein Leerzeichen und jedes 0
durch das Y
, was gesetzt wurde, ersetzt >:U
. Danach D
duplizieren wir diesen String, speichern ihn in X
using U
und J
fügen ihn in den Stack ein. Wir setzen dies mit ein ,
, wodurch die gesamte Zeichenkette mit einem Zeilenumbruch gedruckt wird. Alle anderen danach basieren alle auf demselben Prinzip. Die if-Anweisung endet mit der Sekunde }
.
Die vollständige Konvertierung finden Sie hier .
N = 2
Wir prüfen nun, ob die Eingabe gleich 2 ist. Dies erfolgt am ¹2Qi
Teil. Danach drücken wir, falls gleich, das Leerzeichen viermal mit ð4×
. Danach schieben wir die " U U"
Schnur und speichern sie mit ©
(Idee, die Jelly offensichtlich gestohlen hat: p). Wir J
setzen uns wieder in den Stapel und drucken dies mit einer neuen Zeile. Danach schieben wir den "> :"
String, holen den " U U"
using- Befehl ®
, J
fügen ihn in den Stack ein, D
duplizieren diesen String und drucken beide in dieselbe Zeile.
Kurzes Quiz, was bringt das " > "?®,
?
Nach dem Drucken der obigen Zeichenfolge erhalten wir das Duplikat der zweiten Zeile des Gesichts und drucken dieses aus (da es dasselbe wie die zweite Zeile ist).
Der letzte Teil, der in diesem Fall behandelt wird, ist:
ð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
Dieser ist einfacher zu erklären:
¹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