05AB1E , 162 159 157 octets
Code
Bon sang, bien trop long, mais c'est au moins quelque chose:
">: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
Essayez-le en ligne!
Explication
La première partie du code existe ">:U"V, qui définit Ycette chaîne. Après cela, nous vérifions simplement si l'entrée est égale à 3. Cela se fait à la I3Qipièce. Si égal, nous imprimons la pie géante:
N = 3
Cela commence par ð16×quoi il suffit de pousser 16 caractères d'espace. Après cela, il y a un numéro 7166b. Cela couvre la ">:U "partie, avec un peu d'aide de Retina :). J'ai utilisé ce script pour convertir la chaîne en un nombre binaire. Après cela, nous arrivons à la 1ð:0Y:partie, qui remplace chaque 1avec un caractère d'espacement et chaque 0avec Y, qui a été défini sur >:U. Après cela, nous Duplicate cette chaîne, le stocker dans l' Xutilisation Uet JOIN la pile. Nous sautons ceci en utilisant ,, qui imprime la chaîne complète avec une nouvelle ligne. Tous les autres suivants sont tous basés sur le même principe. La déclaration if se termine à la seconde }.
La conversion complète peut être trouvée ici .
N = 2
Nous vérifions maintenant si l'entrée est égale à 2. Ceci est fait à la ¹2Qipièce. Après cela, si égal, nous poussons le caractère espace 4 fois en utilisant ð4×. Après cela, nous poussons la " U U"corde et la stockons avec ©(idée volée de manière flagrante à Jelly: p). Nous Jretrouvons la pile et l’imprimons avec une nouvelle ligne. Après cela, nous poussons la "> :"chaîne, récupérons l’ " U U"utilisation ®, Jla pile, puis Dmettons cette chaîne en place et les imprimons tous les deux sur la même ligne.
Petit quiz, qu'est-ce que ça va faire " > "?®,?
Après avoir imprimé la chaîne ci-dessus, nous obtenons le duplicata de la deuxième ligne du visage et l’imprimons (puisque c’est la même chose que la deuxième ligne).
La dernière partie couverte par cette affaire est:
ð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
Celui-ci est plus facile à expliquer:
¹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