05AB1E , 162 159 157 байт
Код
Черт возьми, слишком долго, но это по крайней мере что-то
">: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
Попробуйте онлайн!
объяснение
Существует первая часть кода ">:U"V
, которая устанавливает Y
эту строку. После этого мы просто проверяем, равен ли вход 3. Это делается на I3Qi
части. Если равно, мы печатаем гигантскую сороку:
N = 3
Сначала начинается с ð16×
16 символов пробела. После этого появляется номер 7166b
. Это покрывает ">:U "
часть, с небольшой помощью от Retina :). Я использовал этот скрипт для преобразования строки в двоичное число. После этого мы перейдем к 1ð:0Y:
части, которая заменяет каждый 1
с пробелом и каждый 0
с Y
, который был установлен в >:U
. После этого мы D
дублируем эту строку, сохраняем ее в X
использовании U
и J
добавляем в стек. Мы используем это ,
, печатая полную строку с новой строкой. Все остальные после этого основаны на одном и том же принципе. Оператор if заканчивается на втором }
.
Полное преобразование можно найти здесь .
N = 2
Теперь мы проверим, равен ли вход 2. Это делается на ¹2Qi
части. После этого, если он равен, мы нажимаем пробел 4 раза, используя ð4×
. После этого мы нажимаем на " U U"
строку и храним ее, используя ©
(идея явно украдена у Jelly: p). Мы снова J
распаковываем стопку и печатаем ее с новой строки. После этого мы нажимаем "> :"
строку, извлекаем " U U"
использование ®
, J
кладем в стек и D
дублируем эту строку и печатаем оба в одной строке.
Короткий тест, что это будет делать " > "?®,
:?
После печати указанной выше строки мы получаем дубликат второй строки лица и печатаем его (так как он совпадает со второй строкой).
Последняя часть, охватываемая этим делом:
ð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
Это легче объяснить:
¹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