Dictionary and Decomposition Chart
Our goal is to release a working chess engine in Java, C++, and C# by April 24, 2003.

Team News:

March 25 Milestone met. (the protoype works!)

Everyone should download the Java code, run, and test it. Just download the newest versions of each of the five files and compile them.

March 20 Milestone met.

March 6 Milestone met.

We have basically started from scratch again as of March 1.




Download the dictionary in Word format.
Function Input Output Description
alphabeta depth, alpha, beta score
Recursive algorithm to span the move tree. parses the tree and returns the score of the best move. Uses evaluate(), generateMoves(), movesLeft(), makeNextMove() and unmakeMove().
evaluate board score Adds up total material value of a given board and returns a score.
generateMoves board N/A Scans the board and pushes all generated moves for one player from a given board onto the move stack. Uses isLegal() and push().
movesLeft N/A boolean Returns true if stack is not empty.
makeMove move, board board Applies a move to the board and saves info about the board to unmake moves. Uses pop(), attack() and inCheck().
unmakeMove move, board board Unapplies a move done to a board.
isLegal move, board boolean Returns true if move is legal.
push move N/A Pushes a move onto the stack.
pop N/A move Pops a move off of the stack.
attack square, side boolean Returns true if opposite side is attacking given square.
inCheck side boolean Returns true if king is in check.