Project 1 CSE 473 Fall 2009: Game Playing

Preliminary Details

Due: Friday November 13 11:59pm

The purpose of this assignment is to try out the game playing techniques we have studied as well as adding your own ideas. The game is Kalah with the following rules:

Requirements

Turn-in Details

Tournaments

The TAs will organize a Kalah tournament. This is mostly just for fun, but the winners will be recognized and there will be some small extra credit for participating.

The tournament requires having your program calculate moves in a certain amount of time, as described below. This functionality is only necessary if you want to participate in the tournament.

The tournament will be held after the due date, and participants will be assigned an opponent and a deadline by which the game must be completed; you will have to meet, play the game, and report the results to Lynn.

Since there is an advantage to going first, you will play 2 games, changing who goes first, and determine the victor based the total number of stones acquired, if each player wins one game.

Rules

Time: In order to compensate for people using different machines to run their program, we will define move length in terms of processor speed. Each player gets 30 /(speed in GHz) seconds to move. If you wrote a multithreaded implementation, and are running on a multi processor machine, you must multiply the number of processors by the speed. For example, on a 1 GHz machine, you will get 30 seconds. So you should have some means to enter in the computer's speed and have the program return an answer in the allotted time. We will work out something regarding the Java vs. C++.

Memory/Disk Space: Go to town. There are no limits other than you may not use another machine's CPU (no servers). Network disk access is OK, however, if the network goes down, you will have to forfeit the game; using the network is not recommended.