Có khá nhiều công việc đã được thực hiện trong thế giới cờ vua. Ví dụ: có một định dạng tệp được tiêu chuẩn hóa .pgn
, mô tả một trò chơi cờ vua, bao gồm danh sách các nước đi. Ngoài ra, có một định dạng tệp khác .fen
, mô tả vị trí bảng. Thách thức ngày nay là chuyển đổi một danh sách các nước cờ ( theo ký hiệu đại số ) sang vị trí bảng.
Các định nghĩa
- Vị trí
[a-h][1-8]
: Được cung cấp bằng cách nối thêm hàng (tệp) và cột (xếp hạng). Xác định một trong 64 vị trí có thể trên bảng. - Piece
[KQRBNP]?
: Đại diện cho K ing, Q ueen, R ook, B ishop, K N ight, P awn. Trong ký hiệu đại số,P
không được sử dụng. Khi được sử dụng trên bảng, các chữ cái là chữ hoa nếu chúng là Màu trắng, nếu không thì là chữ thường. - Di chuyển
[KQRBN]?[a-h]?[1-8]?x?[a-h][1-8](=[KQRBN])?(+*?)?|O-O(-O)
: Một mảnh theo sau là vị trí nó đang di chuyển.- Nếu phần này không rõ ràng, thì hàng hoặc cột hoặc cả hai được đưa ra.
- Nếu mảnh đang chụp một mảnh, thì
x
được đặt giữa mảnh và vị trí. - Nếu di chuyển là một lâu đài, thì
O-O
được đưa ra cho phía vua, nếu khôngO-O-O
. - Nếu một con tốt đang được thăng cấp, di chuyển được nối thêm với phần
=
tiếp theo nó được thăng cấp. - Nếu một động thái đặt nhà vua vào kiểm tra, nó được nối với a
+
. - Nếu một động thái đặt nhà vua vào checkmate, nó được nối thêm
#
. - Màu sắc của mảnh được xác định bởi số lần lượt (Lần lượt thay thế trắng và đen, bắt đầu bằng màu đen.)
- Board
(([1-8]|[KQRBNPkqrbnp])*\/){8}
: Hàng được đưa ra bằng cách liệt kê các mảnh theo thứ tự hàng. Nếu có các ô vuông trống, mỗi lần chạy của ô vuông trống được đưa ra bằng cách sử dụng độ dài của lần chạy. Các hàng được phân tách bằng cách sử dụng/
Vị trí ban đầu của một hội đồng là rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR
, đại diện cho:
rnbqkbnr
pppppppp
PPPPPPPP
RNBQKBNR
Bạn cần lấy một danh sách các Moves và trả lại một Board. Bạn có thể cho rằng đầu vào của bạn là hợp lệ.
Ví dụ
-> 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
Đây là một môn đánh gôn , vì vậy hãy đưa ra câu trả lời của bạn càng ngắn càng tốt!
e.p.
.