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 Y
string itu. Setelah itu, kami hanya memeriksa apakah input sama dengan 3. Itu dilakukan di I3Qi
bagian. 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 1
karakter spasi dan setiap 0
dengan Y
, yang telah ditetapkan >:U
. Setelah itu, kita D
menggandakan string ini, menyimpannya dalam X
menggunakan U
dan J
menumpuk. 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 ¹2Qi
bagian 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 J
menumpuk dan mencetak ini dengan baris baru. Setelah itu, kami mendorong "> :"
tali, mengambil " U U"
menggunakan ®
, J
oin stack dan D
uplicate 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