KID'S CHESS
Design Document

by The Underpants Gnomes

Overview:

Our team will be designing "Kid's Chess," a computer-based board game specifically designed to develop a child's problem solving and thinking skills. Like checkers, our game pits two teams against each other- either two human opponents or one human and one computer opponent. Each team is armed with a certain amount of playing pieces. The game will also have an intelligent hint mode that offers advice on an intelligent move if requested. Like chess, each of the piece types has different movement capabilities. The object for any player is to either occupy the other player's home base with any of his pieces, or take all the opposing players pieces. If either of these two conditions is satisfied, the player that satisfies them wins.

Completed Design Decisions:

1. We have decided to eliminate the Button class. Instead we will integrate its functionality into the already present UI class. This was decided upon because we felt that the Button class did not need to be an object because it has no real properties and will just be used to signify areas that will queue specific events when signaled.

2. We have decided to add a Cell and Base class to the current design. This is to improve on the abstraction of the design by making the Gameboard a collection of cells. The Cell class will contain information such as its position on the board and any game pieces that it may be holding. The Base class is a subclass of Cell that decides whether or not it has been captured.

3. We have decided to use a pipe and filter architecture design. We decided on this type of architecture design because it most accurately represents the type of game play and function of the game- ie, the user will feed the program an input, such as selecting a piece, whereupon several possible options (depending on where the player moves to, whether he 'takes' an enemy piece, etc.) will be filtered through the system.

Future Design Decisions:

1. We still need to decide on the use of the Sprite/Icon class. We are currently not sure of its function in the design.

2. Clarification is still needed on the strategy of the computer in a single player game. We still have not decided on the design of the strategy. We also need to decide on the function of the hint giver.

3. We still need to come to a decision on the method of saving the game. How will the game be saved? Should we write the save to a new file? What format should the file be in?