Cờ nguyên tử là một biến thể (rất vui) của cờ vua, trong đó mọi lần bắt đều gây ra một "vụ nổ", phá hủy quân cờ bị bắt, quân cờ thực hiện việc bắt và tất cả các quân cờ trong bán kính 1 ô vuông. Mục tiêu của thử thách này không phải là chơi toàn bộ trò chơi cờ nguyên tử, mà chỉ đơn giản là mô phỏng những gì xảy ra khi một nước cờ nhất định được thực hiện.
Disclaimer: Không bao gồm hiệu ứng âm thanh nổ.
Đầu vào
Vị trí bảng sẽ được đưa ra trong Ký hiệu Forsyth-Edwards (thường được gọi là FEN), nhưng chỉ với trường đầu tiên. Ví dụ: đầu vào của:
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR
đại diện cho vị trí bắt đầu:
Điều này phải được coi là một chuỗi hoặc tương đương với ngôn ngữ của bạn. Nó được đảm bảo là hợp lệ; ví dụ, bạn không cần phải quan tâm nếu có mười vị vua, hoặc nếu không có vị vua nào cả.
Bạn cũng sẽ được cung cấp di chuyển mà bạn sẽ mô phỏng, được thể hiện dưới dạng hai tên hình vuông: hình vuông mà phần được di chuyển là và hình vuông mà nó đang di chuyển. Ví dụ: di chuyển cầm đồ của nhà vua hai khoảng trống về phía trước trên hình trên sẽ được biểu diễn dưới dạng:
e2e4
Điều này cũng phải được thực hiện như một chuỗi. Việc di chuyển sẽ luôn có hiệu lực và bạn không cần phải hỗ trợ castling . Bạn cần phải hỗ trợ en passant , điều này sẽ được giải thích chi tiết hơn trong phần tiếp theo.
Đầu ra
Đầu ra của chương trình của bạn phải ở cùng một ký hiệu FEN một phần với đầu vào, với bước di chuyển được chỉ định (và bất kỳ phần nào phát nổ nếu cần thiết).
Các quy tắc chính xác cho vụ nổ là tổ chức khi một mảnh được chụp:
Loại bỏ mảnh đang được chụp (đây sẽ luôn là mảnh trên hình vuông thứ hai có tên trong đầu vào, ngoại trừ khi chụp là một en passant ).
Loại bỏ mảnh đang thực hiện việc chụp (đây sẽ luôn là mảnh trên hình vuông đầu tiên có tên trong đầu vào).
Xóa mọi phần đó là:
nằm trên một trong 8 ô vuông xung quanh một nơi diễn ra vụ bắt giữ (đối với người qua đường , đây là hình vuông mà con tốt bị bắt sẽ được bật lên, nếu nó không nổ).
không phải là một con tốt
Tổng quan nhanh về quy tắc en passant , đối với những người không quen: nếu một con tốt di chuyển hai khoảng trống từ thứ hạng bắt đầu của nó, và có một con tốt có thể bắt được nó nếu nó chỉ di chuyển một ô vuông về phía trước, dù sao nó cũng có thể bắt được nó, nhưng chỉ trên di chuyển tiếp theo. Chụp này được cho là được thực hiện " trong việc thông qua " (hoặc bằng tiếng Pháp: " en passant ").
Các trường hợp thử nghiệm
Trong các bức ảnh, mũi tên màu xanh lá cây phản hồi lại việc di chuyển sắp được thực hiện và các vòng tròn màu xanh lá cây đại diện cho các mảnh bị nổ tung.
Đầu vào : rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR
, g1f3
Đầu ra:rnbqkbnr/pppppppp/8/8/8/5N2/PPPPPPPP/RNBQKB1R
Đầu vào : 3kBb1r/pp5p/3p4/4pn2/P7/1P2P1pP/2rP1P2/R1B3RK
, f2g3
Đầu ra: 3kBb1r/pp5p/3p4/4pn2/P7/1P2P2P/2rP4/R1B3RK
(bị đánh cắp từ http://en.lichess.org/ocoSfS5I/white#36 )
Đầu vào : rnbqk1nr/1pp5/p2pp1pp/5p2/1bN5/2P1PQ1N/PP1P1PPP/R1B1KB1R
, f3b7
Đầu ra: 3qk1nr/2p5/p2pp1pp/5p2/1bN5/2P1P2N/PP1P1PPP/R1B1KB1R
(bị đánh cắp từ http://en.lichess.org/NCUnA6LV/white#14 )
Đầu vào : rnbqk2r/pp2p2p/2p3pb/3pP3/5P2/2N5/PPPP2P1/R1BQKB1R
, e5d6
Đầu ra: rnbqk2r/pp2p2p/2p3pb/8/5P2/2N5/PPPP2P1/R1BQKB1R
(bị đánh cắp từ http://en.lichess.org/AvgU4Skq/white#16 ; đây không phải là động thái thực sự, nhưng tôi không thể bận tâm khi tìm một trò chơi nguyên tử thực sự có người qua đường: P)
Đầu vào : 5r2/2k5/p1B5/1pP1p3/1P4P1/3P4/P7/1K3R1q
, c6h1
Đầu ra: 5r2/2k5/p7/1pP1p3/1P4P1/3P4/P7/1K3R2
(bị đánh cắp từ http://en.lichess.org/l77efXEb/white#58 )
Chấm điểm
Đây là mã golf , vì vậy mã ngắn nhất tính bằng byte sẽ thắng.