05AB1E , 162 159 157 byte
Kode
Sial, terlalu lama, tapi setidaknya itu sesuatu:
">: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
Cobalah online!
Penjelasan
Bagian pertama dari kode ada ">:U"V, yang mengatur Ystring itu. Setelah itu, kami hanya memeriksa apakah input sama dengan 3. Itu dilakukan di I3Qibagian. Jika sama, kami mencetak murai raksasa:
N = 3
Pertama dimulai dengan ð16×yang hanya mendorong 16 karakter luar angkasa. Setelah itu, ada nomor 7166b. Ini mencakup ">:U "bagian itu, dengan sedikit bantuan dari Retina :). Saya menggunakan skrip ini untuk mengkonversi string ke angka biner. Setelah itu, kita sampai pada 1ð:0Y:bagian, yang menggantikan setiap 1karakter spasi dan setiap 0dengan Y, yang telah ditetapkan >:U. Setelah itu, kita Dmenggandakan string ini, menyimpannya dalam Xmenggunakan Udan Jmenumpuk. Kami menghapus ini menggunakan ,, yang mencetak string penuh dengan baris baru. Semua yang lain setelah itu semua didasarkan pada prinsip yang sama. Pernyataan if berakhir pada detik }.
Konversi penuh dapat ditemukan di sini .
N = 2
Kami sekarang memeriksa apakah input sama dengan 2. Ini dilakukan pada ¹2Qibagian tersebut. Setelah itu, jika sama, kami mendorong karakter spasi 4 kali menggunakan ð4×. Setelah itu, kami mendorong " U U"string dan menyimpannya menggunakan ©(ide secara terang-terangan dicuri dari Jelly: p). Kami kembali Jmenumpuk dan mencetak ini dengan baris baru. Setelah itu, kami mendorong "> :"tali, mengambil " U U"menggunakan ®, Join stack dan Duplicate string ini dan mencetak kedua ini pada baris yang sama.
Kuis singkat, apa yang akan ini lakukan: " > "?®,?
Setelah mencetak string di atas, kita mendapatkan duplikat dari garis kedua wajah, dan mencetak ini (karena itu sama dengan baris ke-2).
Bagian terakhir yang dicakup oleh kasus ini adalah:
ð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
Yang ini lebih mudah untuk dijelaskan:
¹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