Final Project:
Chess, COMP 110-Style

In this project you will design and implement a modified version of a chess game.

Updated Problem Specification:

Design a program to implement a "COMP 110-Style" chess game.  This version of the game goes like this:

Each piece should choose a movement that would be legal under normal chess rules.

Although there will be situations in which there is only one legal move a piece can make, there will be many others where there are multiple legal moves a piece can make.  You may handle this in a number of ways:  you could randomly choose one of the legal moves, or you could build whatever level of intelligence into your chess pieces that you like.  For example, if any of the legal moves include capturing an opponent, you might choose one of those over moves that do not include capturing an opponent.  Or you could try to do something more sophisticated to decide whether capturing an opponent is a good choice.  (Note, though, that the project must be turned in THIS QUARTER, not in three years, so don't get too fancy!)  You will lose points if you do not handle the possibility of multiple moves or if you handle it in a completely mechanical way, such as always making the same move unless that move is blocked and then making the same alternate move.

Your program should create the chessboard and the chess pieces and then run the program step-by-step.  Your program should graphically display the state of the chessboard and pieces at the end of each step.  (Alternatively you could choose to redisplay after each piece moves.)  You should provide a Start/Restart button and also a Stop button.  Your program should stop when one of the kings is captured, or when the user clicks on the Stop button.  You may also provide a step button or control the steps within the program.

More specific details:

You may use any of the classes in the Grid Package (grid.jar), including

You may also use the following files as starters: