About Asynchronous Chess
Asynchronous Chess is very similar to standard chess, with one key
difference: players do not have to wait for one another in order to make a
move. From this simple change comes a rich environment in which to explore
methods for time-critical reasoning. AChess is not intended to be a human
playable game. Instead, the focus of this project is to develop
intelligent agents which reason not only about the current state of the chess
board, but about the likelihood that their opponent will move in a specific
amount of time, the cost and value of reasoning, the speed and movement of
pieces, etc.
The Rules
- The players of AChess each have the standard chess pieces.
- The pieces are arrange according to the standard starting layout in normal
chess.
- Players may move any piece at anytime with the following restrictions:
- Each movement must adhere to the standard chess movements for the
piece.
- Pieces move at a specific rate which is defined as millisecond per
space.
- Once a piece is in motion, its path cannot be changed.
- Pieces stop moving when they reach their destination or intersect with
another piece.
- If a players piece attempts to move into a space already occupied by one
of its piece, that piece stops moving.
- If a player moves a piece into a space occupied by its opponent, the
opponent's piece is killed.
- If a player tries to move two or more pieces into an unoccupied space, one of
the pieces is randomly chosen to move into the space, and all others are stopped.
- If a player tries to move a piece into a space that its opponent is also moving into
then one of the pieces is chosen at random to take the space and the other is killed.
- Play continues until one of the kings is killed.
Server Deconfliction Method
To enforce the rules of the game, the AChess server does the following:
- First, the server calculates all of the pieces moving into each space at
the specified time.
- The server then deconflicts all conflicts where a single player is moving
multiple pieces into one space. This leaves at most one pending move
into a space per player.
- The server then deconflicts all conflicts where a player is moving a piece
into a space occupied by one of its own pieces by stopping the move.
This may remove one of the pending moves. The effects of this action
are chained if necessary.
- Next the server randomly chooses one of the remaining moves to move into
the space. All other others are killed.
- The server then checks to ensure that the move is legal (prevents pawns
from capturing forward).
- The piece is ten moved into the space, killing any immobile piece within
it.
- If the opponents king was killed, the game is declared over.
|