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?