Cyborg Chess Kata

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: , , , ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s


%d bloggers like this: