Assignment 6

The Game "Clobber"

Due date:
May 1. 6pm

In class, on May 1, we will have a tournament in which the programs you develop for playing clobber will compete to determine which is the best clobber player. Your grade will not be dependent on the results of this tournament, only on the ability of you program to participate.

You might find some -- or none -- of my code useful.

Do

  1. Learn to play Clobber. There is an excellent applet available to help you learn at http://www.gottfriedville.net/games/clobber/index.htm You might also be able to find some hints on playing clobber well on the web.
  2. Implement an interface to a clobber game so that you can:
    1. specify an initial board configuration (for instance, my code can read a board from a file -- see the constructors for ClobberBoard)
    2. specify whether your program is to move black or white.
    3. take input from you about the opponent's moves (for instance read from the console as is done in my Clobber3).
    4. Print out the move made by the computer -- gui's are not required but I often find them useful for my own understanding while I am developing game players
    I will discuss this further in class.
  3. Implement a system for finding moves that guarantees suggesting a move within 5 seconds. Since the branching factor at the beginning of the game is far higher than at the end, you will probably want to use iterative deepenting (or something similar) to increase the depth of your search as the game goes along because the depth you can search to in 5 seconds will be far larger near the end than at the beginning.

Hand in:

  1. 50 points -- A copy of your code. This should include a version that can be executed easily on the Bryn Mawr computers. Included with you code should be a description of what you did to assure that your program obeys the 5 second constraint.
  2. 30 points -- A textual description of your static evaluation function. Included with this description should be the logic behind each part of your static evaluation function.
  3. 20 points -- Not exactly handed in, but your program must be able to participate in the tournament. If your program is unable to participate, then you will immediately loose these points. Successful participation is all that is required to earn these points.

Tournament Play

  1. All games will be played on a board with 8 rows and 7 columns in each row.
  2. All matches will be best 2 or 3. The first two games will be on an alternating grid, with white in the upper left corner. Each player will be the first to move once.
  3. If a third game is required, the board will be randomly arranged with an equal number of black and while tiles. The player taking gthe first move will be chosen using a coin toss.