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