Clobber

From ICGA Wiki
Jump to: navigation, search

Home * Games * Clobber

Rules and protocol for 2006 Clobber tournament

The rules for the 2006 Clobber tournament are as follows.

  1. The board size is 10x10. The board rows are labelled by 1,2,...,10 and columns by a,b,...,j.
  2. In the initial position, the square a1 is occupied by a black stone and each square is occupied by a black or white stone so that no two neighbouring squares contain stones of the same colour. (Two squares are considered neighbouring if they share a common side).
  3. Players move alternately starting with black.
  4. A player can make a move if he has a stone on a square with a neighbouring square occupied by an opposing stone. The move consists of removing the opponent's stone from the board and replacing it with the player's own one.
  5. The player who can't move, loses.

The 2006 Clobber tournament will be played over LAN using the client-server protocol described below. The server will be running on a machine at the tournament site, so the client programs must be configurable to contact a later-to-be-given host at a later-to-be-given port. The communication protocol will consist of sending text strings where items are separated by single whitespaces and the strings are ended by '\n'.

  1. The first message is sent from the client program to the server and it has the form 'play clobber playername' where playername is a free string without whitespaces. This string will be used as an identification.
  2. The server replies by sending a string of the form 'm n b' where m and n are board dimensions (both 10 for this tournament) and b is either 1 or 0 depending on whether the player is the beginner (i.e. black) or not (i.e. white), respectively.
  3. The player sends a string of the form 'c1 r1 c2 r2' where c1r1-c2r2 is the player's move. That is, if he/she wants to make the move a1-b1, he/she should send over the string "a 1 b 1\n".
  4. The server replies by one of the following strings:
    1. 'error' if the move was illegal.
    2. 'end' if the game has ended because of the opponent's illegal move.
    3. 'c1 r1 c2 r2' if the opponent replied by the move c1r1-c2r2.

After the game has finished (either because of someones win or an illegal move), the client program is supposed to return to step 2 and start a new game with new settings. Note that if the game has ended normally, the program is expected to understand whether it has lost or won, no special end-and-restart command is given. (This may be changed in the future versions of the protocol.)