Project: Phase 1

This page describes both an overview of the entire project and a detailed description of the first phase.

I. The chess program

Your project in the course is to produce a program for playing chess and chess variants with the following features:

The range of possible "chess variants" is not well-defined. A large part of this project, especially at the beginning, is to find a reasonable range of chess variants for your program to handle. To do that you will be working with real, live potential users of your system: The Wheaton College Chess Club.

The project will be divided into three phases.

Resources. There has been prior work on the problem of classifying and specifying chess-like games. You may look at various on-line resources (Wikipedia would be a reasonable place to start), and the following books:

II. Phase 1 details

By interviewing members of the Wheaton College Chess Club, determine a reasonable range of chess variants for your system to model. Design a scheme for modelling and storing these variants---both conceptually and using a set of Java classes. You will also need to be able to store this information in files.

Users will need a way to create games using your scheme, but this doesn't have to be easy at this point---it could be that they simply need to edit the files directly. Make a bare-bones user interface that acts as a driver for your model: the user should be able to select a game and have the initial set-up for that game shown, with some way to indicate how the pieces can move. This doesn't have to be very user-friendly at this point, only something that will prove the concept of the model.

In addition to actual software, in this phase you will also produce documentation describing

I've made March 4 (the Friday before spring break) the official due date, but I strongly urge you to aim for the previous friday (Feb 25) as the working due date. The only reason I didn't make that the official one is that I figured you wouldn't use the week before spring break on phase 2 even if you had the option, so you may as well have that week as a buffer time. If, however, everyone does finish by Feb 25, I can reassign new teams and get the phase 2 specification earlier, so you can begin planning for that phase earlier.