Quick links:
Contents:
The 6.170 staff has enjoyed using your initial implementation, but feels that traditional antichess isn't enough of a rejection of the mainstream status quo. We need to up the ante and add another "anti".
You will extend your Antichess implementation to play "Anti-King Antichess", which adds an anti-king piece to the board. Your antichess implementation must be able to play both traditional and anti-king antichess, and be able to save and load games in both formats.
In addition, we have recently heard of some thing called the
"Internet". The MachinePlayer specification of the
preliminary release has been replaced in order to support play on the
antichess.csail.mit.edu
web site.
The rules of Anti-King Antichess are identical to those of standard Antichess, except for the addition of an anti-king for each side. The anti-king starts in the square in front of the opposing Queen's pawn, as shown to the right (the anti-king is represented in this diagram by an upside-down king).
The anti-king is a king that is in check whenever it is not attacked by opposing pieces. For clarity, we are going to call this condition anticheck. If a player ends their turn with their anti-king not attacked, they are checkmated and lose. Anti-kings threaten friendly pieces, but do not attack opposing ones. Kings do not attack anti-kings, and anti-kings do not attack kings, so an anti-king next to a hostile king but not attacked by any other piece is not attacked and so in check. Since anti-kings are a form of king, they may not be captured, only mated.
Note that no piece is forced to capture an anti-king (because the anti-king can not be captured).
Note that A may win the game with 3 pieces on the board: their king, anti-king, and one other piece which is attacking B's anti-king. B is forbidden to capture the last non-king non-anti-king piece, because doing so would put their anti-king in anticheck.
If player A checkmates player B and on the same turn takes a piece leaving B with just 3, player B wins (ie, the loss of pieces prevails). Note that this is different from standard antichess, where the checkmate would prevail.
<square id="d3" side="black" piece="king" antiking="true" />
Instead of implementing the MachinePlayer interface, you
will be required to implement the
AiPlayerFactory
interface from antichess.csail.mit.edu. The antichess.csail.mit.edu
web site contains further specifications and packaging instructions.
Your AI must be playable in the antichess.csail.mit.edu client.
We have provided a jar file of the net.antichess.ai package in antichess-ai.jar.
Note that AiPlayerFactory provides means for your AI to "learn" from its opponents by persisting state across games.
The Antichess tournament will require that your machine player is proficient in playing both Antichess and Anti-King Antichess. You must ensure that you support the new rules in order to compete in the tournament. Any illegal move in the tournament results in disqualification.
The tournament will be run with the antichess.csail.mit.edu software. Your AI will play at least one practice game against every other competitor before the tournament begins.
Draws are considered after any other end-game situations. For example, if the third repetition of a position results in a white's winning by checkmate, then white wins and a draw is not scored.
Wins score 3 points for the winner and 0 points for the loser; draws score 1 point each for the winner and loser. Note that, unlike in FIDE chess, draws are scored automatically by the tournament referee; they do not have to be requested.
Neither your Text UI nor your GUI needs to support draws, but your machine players may wish to know about them to avoid a draw if a win is possible.
This section lists clarifications and answers to common questions about the amendment.