05AB1E , 162 159 157 bytes
Código
Droga, muito tempo, mas é pelo menos uma coisa:
">: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
Experimente online!
Explicação
A primeira parte do código existe de ">:U"V
, que define Y
para essa sequência. Depois disso, apenas verificamos se a entrada é igual a 3. Isso é feito na I3Qi
parte. Se igual, imprimimos a pega gigante:
N = 3
Começa pela primeira vez, com ð16×
apenas 16 caracteres de espaço. Depois disso, há um número 7166b
. Isso cobre a ">:U "
parte, com uma pequena ajuda da Retina :). Eu usei esse script para converter a string em um número binário. Depois disso, chegamos à 1ð:0Y:
parte, que substitui todos 1
por um caractere de espaço e todos 0
por Y
, que foi definido como >:U
. Depois disso, D
duplicamos essa string, armazenamos-a X
usando U
e J
oin na pilha. Nós pop-lo usando ,
, que imprime a seqüência completa com uma nova linha. Todos os outros depois disso são todos baseados no mesmo princípio. A instrução if termina no segundo }
.
A conversão completa pode ser encontrada aqui .
N = 2
Agora verificamos se a entrada é igual a 2. Isso é feito na ¹2Qi
parte. Depois disso, se for igual, pressionamos o caractere de espaço 4 vezes usando ð4×
. Depois disso, empurramos a " U U"
corda e a armazenamos usando ©
(ideia descaradamente roubada de Jelly: p). Novamente colocamos J
na pilha e imprimimos isso com uma nova linha. Depois disso, empurramos a "> :"
string, recuperamos o " U U"
uso ®
, J
colocamos na pilha e D
duplicamos essa string e imprimimos ambas na mesma linha.
Teste curto, o que isso fará " > "?®,
:?
Depois de imprimir a string acima, obtemos a duplicata da segunda linha da face e a imprimimos (já que é a mesma da segunda linha).
A última parte abordada neste caso é:
ð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
Este é mais fácil de explicar:
¹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