Contents

Overview

The Game of AntiChess is based upon the game of Chess, with some rule changes, and a completely different aim. The aim in AntiChess is simple: Unfortunately, this is not as easy as it sounds. There are new constraints imposed by AntiChess. However, you do not need to know all the rules. The program will not allow you to make an illegal move, and you can learn how to play by using it.

Rules

The Rules of Antichess are very simple. There is a white player and a black player (by default, the black player is played by the computer). The white player makes the first move. He must move according to the rules about to be described. When he is done, the black player will make a move, and then again the white player. The game concludes when one player wins by losing all his pieces or by being forced into checkmate.

The following is the list of all possible moves:

King: The king is very limited in its ability to move. It can move one square in any direction, (including diagonals). However, it may not move to any square which would immediately lead to its capture by an opponent's piece. There is only one king, and once it can't move or is captured, the game is over. A king is considered in check if it is being threatened by an opponent's piece.

Pawn: Under normal circumstances, a pawn may only move one square forward. For example, a white pawn on c3 can only move to c4, and a black pawn on e7 can only move to e6. However, when capturing, a pawn can only move one step in the diagonal. so to take a black piece, a white pawn can move from c3 to d4 OR b4, but not c4. There are initially eight pawns a side, placed on the second row from where the side starts.

Knight: The knight is unique in the game of chess and antichess in that it can jump over other pieces. Its only moves are 2 and 1. For example, it can move 2 forward and 1 left, or 1 right and 2 back, or any such L shaped combination. Since it is allowed to jump over pieces, it is the only piece in the initial board that can move out of the first/last row.

Rook: The rook can only move in straight directions an unlimited distance. It may not pass over another piece of any color. It can move forward, left, right, or back. There are two rooks a side, placed at the corner of the board.

Bishop: A bishop can only move diagonally, but in any direction. It may not jump over other pieces. There are two bishops a side, placed at columns c and f.

Queen: The queen is the most mobile piece in this game. It can move any number of steps in both straight lines and diagonals. However, she may not jump over other pieces. She is generally considered the most powerful piece on the board.

The Game starts with the following initial configuration:

The white pieces are on the bottom, and the black ones on top. The white player gets to make the first move. In the first move, he may only move one of the pawns or the knights. By clicking upon one of the pieces, if it can move, the squares it may move to will be grayed out. Then, by clicking upon one of the grayed out squares, the move is made. To change the piece to be moved, just click upon another piece, or click in an illegal square. If preferred, the move can be typed into the gray box, in the form "a2-a3". After the white player moves, the black player must make a move. Since initially, the black player is played by the computer, after a short wait, a move will be made automatically. Again, the white player must make a move. This continues until either one side has lost all their pieces - a win for that side, or has been forced into checkmate, another win. There are however, some requirements on the moves. A king may not force himself to be captured. If any player can capture a piece in his move, he must capture a piece (if there are more than one pieces that can be captured, one of them must be captured). The only time where this rule does not have to be followed is if this capture would lead to a captured king. The interface will enforce this rule, so do not worry too much about making legal moves.

Interface

This game has a few features to make it more enjoyable, and simpler or more convenient to play.

Undo will undo a pair of moves just made, and will reset the clocks to the value they had before the moves were made.

Hint will suggest a good move to do next, but this should not be used too often.

Flip changes the player's sides, so white plays black and vice-versa. This is one way to get the machine to play against itself.

Set-Name-White will let you set the name of the white player. It will bring up a box and will prompt for a new name. Type the new name in and hit return.

Set-Name-Black will let you set the name of the black player. Isn't this easy?

Set-Time-White will let you set the time remaining for the white player. It will prompt you for the time in a requester, and will accept inputs only of the following format: mm:ss (and attempt to parse bad inputs if it can)

Set-Time-Black is the equivalent thing for black.

Load will let you load a new board, assuming you have got one saved. It will prompt you for the filename of the new board, and attempt to find it. You should only pass it names of files you have saved with this antichess program. not one your friends gave you, as it probably won't work. It will also reset the names of the players to their original names.

Save will let you store the board to continue later using Load.

New will let you start a brand new game of AntiChess.

Quit. This is rather obvious, for it ends the game.

By using these keys, you can control the way the game plays, make it easier or harder to win, and also learn how to play.

Hints

Cruft

This program was written by four budding programmers in an MIT course labelled 6.170 : Laboratory in Software Engineering. We had a month long project where we were supposed to implement the game of antichess in CLU using Tcl (wish) for our graphical interface. After a month of labor, we finally produced this program. As the time for coding and testing was rather short compared to true large-scale programs, more bugs (especially subtle ones) are likely to have snuck into our code than most other programs around. If you do use this program, and have discovered a bug, feel free to send a report to one of the following: yoav@mit.edu, lisiecki@mit.edu, refahrme@mit.edu, or abelenky@mit.edu. We probably won't have the time to fix it, but it would be nice to hear from people.

Implementation

There is more information on how this program works, under the hood.