This Kata creates a tool used for Cyborg Chess that displays the number of pieces attacking each square.
Background
Cyborg chess is a special kind of league where each “player” is actually a human-computer team. Gary Kasparov is a proponent of Cyborg chess, saying it will lead to higher quality play and “blunder free” games. Most Cyborg chess today is played by a human sitting in front of a chess engine. The human gets proposals from the engine and types in potential moves to be evaluated. But I think there’s more potential. The computer can present information to the human in interesting ways which help the human better visualize the position of the board.
One interesting way to look at the board is in terms of how many pieces are attacking each square. If each player is attacking a square with the same number of pieces, then taking the square would lead to a sequence of sacrifices. But if one player has an advantage, then it might be in their benefits to capture the square. Looking at the board in these terms leads to a clearer view of the power balance, and helps the human perform better.
The Program
Your task is to write a program which inputs a board position, and displays a board with numbers for how many pieces of each color attack each square. Standard chess rules apply. The input is the current board position in Forsyth–Edwards Notation. The program should display in two ways: a text/ASCII graphics display, and w graphical display using the display library and format of your choice.
For test cases, start with a single piece in various board positions. Then add other pieces and additional types of pieces.
Tags: advanced chess, chess, code kata, cyborg chess, TDD
Leave a Reply