Project #1

Isola is a game played on a 7 X 7 board in which players alternately take turns which consist of moving their piece one square (like a chess king) and then choosing one square on the board to destroy. The object is to corner the opposing piece so that it has no legal moves left.

The Isola shell that we will use was developed for an AI course at Brandeis University. The sources are in the file Isola.tar. Isola was mainly written by Kelechi Dike, based on a framework developed by Ethan Bolker, with further modifications by Yun Xu. I have further modified the shell to simplify and generalize the Timing mechanism.

Your job is to write a computer player that plays Isola intelligently. Your player should be a subclass of class ComputerPlayer so that it fits seemlessly into the Isola shell. Only one method

    	public Move findbest( Game g )

is required in your player. Three examples have been done for you, Weak.java, Medium.java, and Strong.java (although the latter is not really very strong and I expect you all to trounce it). In addition two examples of even stronger players have been included, Yelena.class, and the YunXu player (which includes three .class files).

The Isola shell includes two .html files which will allow the game to be executed as an applet in a web browser. One of these, IsolaTournament.html, can be used to set up tournaments between different players. You can learn about the players, and the game, by setting up some tournaments and observing them. The parameters, including the players and time limits, are in the respective .html files.

The parameters for the standalone application are contained in the file: Globals.java.

Read the code and learn how the shell is put together -- it will help you when you write your player. Bring questions to class.

Our first trial tournament will be on Monday, September 10.