05AB1E , 162 159 157 bytes
Código
Maldición, demasiado tiempo, pero al menos es algo:
">: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
Pruébalo en línea!
Explicación
La primera parte del código existe ">:U"V
, que se establece Y
en esa cadena. Después de eso, solo verificamos si la entrada es igual a 3. Eso se hace en la I3Qi
parte. Si es igual, imprimimos la urraca gigante:
N = 3
Primero comienza con lo ð16×
que simplemente empuja 16 caracteres espaciales. Después de eso, hay un número 7166b
. Esto cubre la ">:U "
parte, con un poco de ayuda de Retina :). Usé este script para convertir la cadena a un número binario. Después de eso, llegamos a la 1ð:0Y:
parte, que reemplaza cada 1
con un carácter de espacio y cada 0
con Y
, que se ha establecido en >:U
. Después de eso, D
duplicamos esta cadena, la almacenamos X
usando U
y en J
la pila. Hacemos estallar usando ,
, que imprime la cadena completa con una nueva línea. Todos los demás después de eso se basan en el mismo principe. La declaración if termina en el segundo }
.
La conversión completa se puede encontrar aquí .
N = 2
Ahora verificamos si la entrada es igual a 2. Esto se hace en la ¹2Qi
parte. Después de eso, si es igual, empujamos el carácter de espacio 4 veces usando ð4×
. Después de eso, empujamos la " U U"
cuerda y la almacenamos usando ©
(idea descaradamente robada de Jelly: p). Nuevamente nos encontramos en J
la pila e imprimimos esto con una nueva línea. Después de eso, empujamos la "> :"
cadena, recuperamos el " U U"
uso ®
, en J
la pila y D
duplicamos esta cadena e imprimimos ambos en la misma línea.
Breve cuestionario, ¿qué hará esto " > "?®,
?
Después de imprimir la cadena anterior, obtenemos el duplicado de la segunda línea de la cara e imprimimos esto (ya que es lo mismo que la segunda línea).
La última parte cubierta por este caso es:
ð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 es más 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