Homework Assignment 2B/C:

Released 10/19/01

Part B Due 10/26/01

Part C Due 11/2/01

 

1. Part B

A. Implement a move generator for chess.

B. Implement a static evaluation function for chess.

C. Set up interface so you can play networked games against other people in class. (Using xboard) See the chess engine communication protocol (http://www.tim-mann.org/xboard/engine-intf.html)

 

The goal here is to see your chess program play a legal (but perhaps poor) game of chess using xboard.

 

2. Part C

A. Either with your team or by joining your team with another team (i.e., in your original group or in a group of 4 to 6 people) implement a significant extension to the power of your player. Here are some of the things you could try.

(1) Transposition tables

(2) Staged evaluation function (different function for beginning,middle, endgame)

(3) Opening book

(4) Endgame book

(5) Distributed processing - parallelize search over a network of computers

(6) Using machine learning to tune the evaluation function

(7) Variable cut-off: instead of always searching down a fixed number of plies, search deeper if a particular position appears to be "criticial".

(8) Decision-theoretic time allocation: instead of spending the same amount of time for each move, take into account the point in the game, how well you are doing, and the amount of time remaining, and vary the time allocated to the current move accordingly.

 

3. Part D

A. The tournament for bragging rights. Details to follow.

 

 

 

 

Some Details:

We are going to use the xboard (/uns/bin/xboard) framework (http://www.tim-mann.org/chess.html) for running the tournaments. We are going to use the matchgame feature of xboard, so the command line we'll issue will be:

xboard -fcp foo -scp bar -mg x

You should be able to handle all of the commands that xboard will issue you with that command-line. More details to follow.

 

Chess resources:

The Internet Chess Club :

http://www.chessclub.com/links/

FAQ for chess:

http://www.clark.net/pub/pribut/chess.html

Programming a chess engine:

http://www.xs4all.nl/~verhelst/chess/programming.html

U.S. Chess Online:

http://www.uschess.org/