Trong cờ vua, Ký hiệu Forsyth-Edwards , thường được gọi là "FEN", là một cách viết văn bản của bảng. Nó mô tả tám hàng của mỗi bảng (được gọi là "hàng ngũ" trong cờ vua) từ trên xuống dưới theo quan điểm của White. Các mảnh được viết là K (vua), Q (nữ hoàng), R (rook), B (giám mục), N (hiệp sĩ), và P (cầm đồ). Các mảnh màu đen sử dụng các chữ cái này bằng chữ thường và các mảnh màu trắng sử dụng các chữ cái này bằng chữ in hoa. Các khoảng trống được biểu thị bằng một số từ 1 đến 8 cho biết có bao nhiêu khoảng trống liên tiếp. Một thứ hạng hoàn toàn trống sẽ là 8
, một người da đen duy nhất ở cột ngoài cùng bên phải (được gọi là "tập tin" trong cờ vua) sẽ là 7r
hai con cờ trắng ở mỗi đầu của một hàng PP4PP
. Các hàng được phân cách bằng một/
. Thông thường có các thông tin khác được thêm vào, cho biết bên nào sẽ di chuyển, đúc và quyền người qua đường , số di chuyển và đồng hồ nửa chừng, nhưng chúng tôi sẽ bỏ qua chúng cho mục đích của thách thức này.
Đầu vào
Một chuỗi FEN, từ dòng lệnh hoặc STDIN, như bạn muốn. Bạn có thể cho rằng chuỗi này luôn hợp lệ.
Đầu ra
Viết cho STDOUT một đại diện nghệ thuật ASCII đơn giản của bảng như nó thực sự sẽ xuất hiện:
- Các mảnh được đại diện bởi nhân vật của họ trong FEN
- Hình vuông trống được thể hiện bằng khoảng trắng
- Các mảnh và hình vuông được phân tách bằng một đường ống
|
và có các đường ống ở mỗi bên của bảng
Vì vậy, một bảng trống, được viết như 8/8/8/8/8/8/8/8
trong FEN, sẽ xuất hiện dưới dạng
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
Vị trí bắt đầu của một ván cờ được viết là rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR
, và sẽ xuất hiện dưới dạng
|r|n|b|q|k|b|n|r|
|p|p|p|p|p|p|p|p|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
|P|P|P|P|P|P|P|P|
|R|N|B|Q|K|B|N|R|
Vị trí cuối cùng của Anderssen-Kieseritzky 1851 , được gọi là "Trò chơi bất tử" trong cộng đồng cờ vua, được viết dưới dạng r1bk3r/p2pBpNp/n4n2/1p1NP2P/6P1/3P4/P1P1K3/q5b1
và chương trình của bạn khi được cung cấp đầu vào đó sẽ xuất ra:
|r| |b|k| | | |r|
|p| | |p|B|p|N|p|
|n| | | | |n| | |
| |p| |N|P| | |P|
| | | | | | |P| |
| | | |P| | | | |
|P| |P| |K| | | |
|q| | | | | |b| |