Handout F1

Contents:

Overview

This handout describes one of the two final project choices you have this term, Antichess. The other project is Gizmoball.

Your final project is to design, document, build, and test a program that plays Antichess. Antichess is a variant of chess in which the goal is to lose all of your pieces (except your king) or force a checkmate. Certain simplifications are made to the rules of chess, and players must capture a piece if they can. Your group's version of Antichess will be timed; each player will have a limit on the amount of total processing time used to decide all of its moves.

Any team which meets all of the requirements for its Antichess application will be permitted to enter the design contest and/or the single elimination AI Antichess tournament. The tournament and contest are optional, and will not affect your grade in any way. Nominal prizes will be given to the winners.

Requirements

Because this project is in part a design exercise, the assignment specifies what the user should be able to do and leaves it up to you to figure out what modules and interfaces are appropriate. This section gives an overview of Antichess. A detailed specification will be handed out after teams are formed. To enable automated testing, your implementation must support a standard file format (details will be provided), in addition to the loosely-specified user interfaces.

Your application must provide for at least the following functionality:

Human - Human Game:
Two players playing Antichess against one another on the same computer.
Human - Computer Game:
One player playing Antichess against the computer.
Saving Games:
The ability for a user to save games to and load games from disk.
User Interface:
Users will have an option of playing Antichess in a terminal or through a graphical user interface.

Grading and Schedule

You will work in teams of three or four. All members of a team will receive the same grade, except in unusual circumstances.

Stage Due date
% of project grade Graded on
Preliminary design Wed, April 19, 9:00PM
10%
Have you identified the issues?
Weekly meetings with TA April 10 - May 8
5%
Did all of the team members participate constructively?
Preliminary Release Tue, May 2, 9:00PM
20%
Is it a good design? Is the required functionality present?
Final Report Mon, May 15, 9:00PM
20%
Quality of entire documentation including amendment and design critique. Are the tradeoffs & alternatives analyzed?
Implementation & Test Mon, May 15, 9:00PM
35%
Does it work? Have you demonstrated that it works? What is the quality of the code, the design, and the tests?
User Interface and Quality of Play Mon, May 15, 9:00PM
10%
How is the user experience? Is it easy-to-use? How sophisticated is the computer player?

As you can see, 60% of your grade depends on design. Please realize that the most important aspect of any large software endeavor is design. A good, well documented design will make the rest of a group's work faster, easier and more enjoyable.

Notes