มีงานมากมายที่ทำในโลกของหมากรุก ตัวอย่างเช่นมีรูปแบบไฟล์มาตรฐาน.pgn
ที่อธิบายถึงเกมหมากรุกรวมถึงรายการการเคลื่อนไหว นอกจากนี้ยังมีรูปแบบไฟล์อื่น.fen
ที่อธิบายตำแหน่งกระดาน ความท้าทายในวันนี้คือการแปลงรายการหมากรุก ( ในรูปพีชคณิต ) เป็นตำแหน่งกระดาน
คำนิยาม
- ตำแหน่ง
[a-h][1-8]
: กำหนดโดยการผนวกแถว (ไฟล์) และคอลัมน์ (อันดับ) กำหนดหนึ่งใน 64 ตำแหน่งที่เป็นไปได้บนกระดาน - ชิ้น
[KQRBNP]?
: แทนK ing, Q ueen, R ook, B ishop, K N ight, P awn ในสัญลักษณ์เกี่ยวกับพีชคณิตP
ไม่ได้ใช้ เมื่อใช้บนกระดานตัวอักษรจะเป็นตัวพิมพ์ใหญ่หากเป็นสีขาวมิฉะนั้นจะเป็นตัวพิมพ์เล็ก - ย้าย
[KQRBN]?[a-h]?[1-8]?x?[a-h][1-8](=[KQRBN])?(+*?)?|O-O(-O)
: ชิ้นส่วนตามด้วยตำแหน่งที่กำลังเคลื่อนที่ไป- หากชิ้นส่วนไม่ชัดเจนให้กำหนดแถวหรือคอลัมน์หรือทั้งสองอย่าง
- หากชิ้นส่วนถูกจับชิ้นส่วน
x
จะถูกวางระหว่างชิ้นส่วนและตำแหน่ง - หากการย้ายเป็นขุนแล้วจะได้รับสำหรับพระมหากษัตริย์ด้านมิฉะนั้น
O-O
O-O-O
- หากจำนำได้รับการส่งเสริมการเคลื่อนไหวจะถูกผนวกเข้ากับ
=
ตามด้วยชิ้นส่วนที่จะได้รับการเลื่อนตำแหน่ง +
หากมีการย้ายทำให้พระมหากษัตริย์ในการตรวจสอบก็ถูกผนวกเข้ากับ- หากมีการย้ายทำให้กษัตริย์ในรุกฆาต,
#
ผนวกกับ - สีของชิ้นส่วนถูกกำหนดโดยหมายเลขเทิร์น (เปลี่ยนสีขาวและสีดำเริ่มต้นด้วยสีดำ)
- คณะกรรมการ
(([1-8]|[KQRBNPkqrbnp])*\/){8}
: แถวจะได้รับจากการแสดงรายการในลำดับแถว หากมีสี่เหลี่ยมที่ว่างเปล่าการวิ่งของสี่เหลี่ยมจัตุรัสที่ว่างเปล่าแต่ละครั้งจะถูกกำหนดโดยใช้ความยาวของการวิ่ง แถวถูกคั่นด้วยการใช้/
ตำแหน่งเริ่มต้นของคณะกรรมการคือrnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR
ซึ่งหมายถึง:
rnbqkbnr
pppppppp
PPPPPPPP
RNBQKBNR
คุณต้องทำรายการ Moves และส่งคืน Board คุณสามารถสันนิษฐานได้ว่าข้อมูลที่คุณป้อนนั้นถูกต้อง
ตัวอย่าง
-> rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR
e4 -> rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR
e4,c5 -> rnbqkbnr/pp1ppppp/8/2p5/4P3/8/PPPP1PPP/RNBQKBNR
e4,d5,exd5,e5 -> rnbqkbnr/ppp2ppp/8/3Pp3/8/8/PPPP1PPP/RNBQKBNR
e4,d5,exd5,e5,dxe6 -> rnbqkbnr/ppp2ppp/4P3/8/8/8/PPPP1PPP/RNBQKBNR
e4,d5,exd5,e5,dxe6,Bc5,Nf3,Nf6,d4,Nc6,dxc5,Ne5,h4,h5,Nh2,Neg4 -> r1bqk2r/ppp2pp1/4Pn2/2P4p/6nP/8/PPP2PPN/RNBQKB1R
e4,d5,exd5,e5,dxe6,Bc5,Nf3,Nf6,d4,Nc6,dxc5,Ne5,h4,h5,Nh2,Neg4,g3,Nxf2,Qd4,N6g4 -> r1bqk2r/ppp2pp1/4P3/2P4p/3Q2nP/6P1/PPP2n1N/RNB1KB1R
e4,d5,exd5,e5,dxe6,Bc5,Nf3,Nf6,d4,Nc6,dxc5,Ne5,h4,h5,Nh2,Neg4,g3,Nxf2,Qd4,N6g4,Bf4,O-O -> r1bq1rk1/ppp2pp1/4P3/2P4p/3Q1BnP/6P1/PPP2n1N/RN2KB1R
e4,d5,exd5,e5,dxe6,Bc5,Nf3,Nf6,d4,Nc6,dxc5,Ne5,h4,h5,Nh2,Neg4,g3,Nxf2,Qd4,N6g4,Bf4,O-O,Na3,Nxh1,O-O-O,Qg5,exf7+ -> r1b2rk1/ppp2Pp1/8/2P3qp/3Q1BnP/N5P1/PPP4N/2KR1B1n
e4,d5,exd5,e5,dxe6,Bc5,Nf3,Nf6,d4,Nc6,dxc5,Ne5,h4,h5,Nh2,Neg4,g3,Nxf2,Qd4,N6g4,Bf4,O-O,Na3,Nxh1,O-O-O,Qg5,exf7+,Kh7,Bxg5,Rd8,f8=Q -> r1br1Q2/ppp3pk/8/2P3Bp/3Q2nP/N5P1/PPP4N/2KR1B1n
e4,d5,exd5,e5,dxe6,Bc5,Nf3,Nf6,d4,Nc6,dxc5,Ne5,h4,h5,Nh2,Neg4,g3,Nxf2,Qd4,N6g4,Bf4,O-O,Na3,Nxh1,O-O-O,Qg5,exf7+,Kh7,Bxg5,Rd8,f8=Q,Ngf2,c6,Rd7,cxd7,b6,d8=Q,c6,Q4d6,Ba6,Qd8f6 -> r4Q2/p5pk/bppQ1Q2/6Bp/7P/N5P1/PPP2n1N/2KR1B1n
e4,d5,exd5,e5,dxe6,Bc5,Nf3,Nf6,d4,Nc6,dxc5,Ne5,h4,h5,Nh2,Neg4,g3,Nxf2,Qd4,N6g4,Bf4,O-O,Na3,Nxh1,O-O-O,Qg5,exf7+,Kh7,Bxg5,Rd8,f8=Q,Ngf2,c6,Rd7,cxd7,b6,d8=Q,c6,Q4d6,Ba6,Qd8f6,Rb8,Qdd8,b5,Qc5,b4,Qxb8,bxa3,Rd3,Nxd3+,Kd1,axb2,Bh3,b1=Q+,Kd2,Qxa2,Qh6+,gxh6,Qcd6,Qa1,Qbc7+,Kh8,Qdd8# -> 3Q3k/p1Q5/b1p4p/6Bp/7P/3n2PB/2PK3N/q6n
นี่คือรหัสกอล์ฟเพื่อให้คำตอบของคุณสั้นที่สุด!
ดังนั้นไม่มีผู้ผ่าน: p?
—
Adnan
@Adnan ฉันเชื่อว่ากรณีทดสอบของฉันรวมถึงผู้ที่มีความสามารถพิเศษ
—
Nathan Merrill
โอ้ขอโทษฉันไม่เห็นว่า ฉันใช้เสมอที่จะ notate
—
Adnan
e.p.
การกินกับการเคลื่อนไหว
เราจะใช้การเคลื่อนไหวคั่นด้วยช่องว่างแทนได้ไหม
—
orlp
แน่นอน. รูปแบบรายการใด ๆ ก็ได้
—
Nathan Merrill