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 Yauf diesen String gesetzt wird. Danach prüfen wir nur, ob die Eingabe gleich 3 ist. Das wird am I3QiTeil 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 1durch ein Leerzeichen und jedes 0durch das Y, was gesetzt wurde, ersetzt >:U. Danach Dduplizieren wir diesen String, speichern ihn in Xusing Uund Jfü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 ¹2QiTeil. 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 Jsetzen uns wieder in den Stapel und drucken dies mit einer neuen Zeile. Danach schieben wir den "> :"String, holen den " U U"using- Befehl ®, Jfügen ihn in den Stack ein, Dduplizieren 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