แจ็คและเจนตัดสินใจเล่นเกมหมากรุกในขณะที่ไม่อยู่ น่าเสียดายที่แจ็คค่อนข้างแย่ในการสร้างภาพ เขาพบว่ามันยากที่จะคิดการเคลื่อนไหวที่เป็นไปได้สำหรับชิ้นส่วนที่กำหนดนอกเหนือจากจำนำแน่นอน!
ความท้าทายของคุณคือช่วยค้นหาแจ็คตัวเลือกที่เป็นไปได้สำหรับชิ้นส่วนที่ระบุ (นอกเหนือจากการจำนำ)
ในกรณีที่ลืมแล้วชิ้นส่วนต่าง ๆ จะถูกแทนด้วย:
- K: ราชา
- ถาม: ราชินี
- N: อัศวิน
- B: อธิการ
- R: โกง
ตัวอย่างเช่นในภาพต่อไปนี้อัศวินตั้งอยู่ที่d4
และสามารถย้ายไปc2
, b3
, b5
, c6
, e6
, f5
, ,f3
e2
สำหรับอินพุตที่กำหนด:
Nd4
คุณจะผลิต:
Nc2 Nb3 Nb5 Nc6 Ne6 Nf5 Nf3 Ne2
กฎ:
- ลำดับของผลลัพธ์ไม่สำคัญตราบใดที่มีการเคลื่อนไหวที่เป็นไปได้ทั้งหมดที่ระบุไว้
- การเคลื่อนไหวที่เป็นไปได้สามารถคั่นด้วยช่องว่างบรรทัดใหม่หรือตัวคั่นอื่น ๆ
- อินพุตสามารถส่งผ่านไปยังโปรแกรมเป็นพารามิเตอร์หรือผ่าน
STDIN
- ช่องว่างในโปรแกรมจะถูกนับดังนั้นควรใช้ให้เกิดประโยชน์สูงสุด
นี่คือรหัสกอล์ฟ (โปรดหลีกเลี่ยงการใช้เครื่องมือ / ยูทิลิตี้ใด ๆ ที่ออกแบบมาเพื่อวัตถุประสงค์โดยเฉพาะ) คำตอบที่สั้นที่สุดชนะ!
f(x)... case "Q": {f("B");f("R")}
หากฟังก์ชันต้องการ #includes สิ่งเหล่านี้ควรเป็นส่วนหนึ่งของจำนวนไบต์