05AB1E , 162 159 157 ไบต์
รหัส
Dammit ยาวเกินไป แต่อย่างน้อยก็มีบางอย่าง:
">: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
oin สแต็ค เราป๊อปอัพนี้โดยใช้,
ซึ่งพิมพ์สตริงเต็มกับขึ้นบรรทัดใหม่ ทั้งหมดอื่น ๆ หลังจากนั้นทั้งหมดขึ้นอยู่กับเจ้าชายคนเดียวกัน }
ถ้าคำสั่งสิ้นสุดที่สอง
การแปลงเต็มสามารถพบได้ที่นี่
N = 2
ตอนนี้เราตรวจสอบว่าการป้อนข้อมูลเท่ากับ 2 นี้จะทำที่¹2Qi
ส่วน หลังจากนั้นถ้าเท่ากับเราผลักดันอักขระช่องว่าง 4 ð4×
ครั้งโดยใช้ หลังจากนั้นเราก็ดัน" U U"
สตริงและเก็บไว้โดยใช้©
(ความคิดที่ถูกขโมยโจ๋งครึ่มจาก Jelly: p) เราJ
ยังคงอยู่ในสแต็กอีกครั้งและพิมพ์ด้วยบรรทัดใหม่ หลังจากที่เราผลักดัน"> :"
สตริงเรียก" U U"
ใช้®
, J
OIN สแต็คและD
uplicate สายนี้และพิมพ์เหล่านี้ทั้งในบรรทัดเดียวกัน
แบบทดสอบสั้น ๆ สิ่งนี้จะทำ: " > "?®,
?
หลังจากพิมพ์สตริงข้างต้นเราจะได้รับสำเนาของบรรทัดที่สองของใบหน้าและพิมพ์สิ่งนี้ (เนื่องจากเป็นเช่นเดียวกับบรรทัดที่ 2)
ส่วนสุดท้ายที่กล่าวถึงในกรณีนี้คือ:
ð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