Computer Science 662
Spring 2013
Assignment 3:  Two Player Games
Due Monday, March 11th

Reversi (Othello)

For ths assignment, you will be creating an agent that plays the game Reversi (also known by the trademark Othello). Reversi is a two-person, full information game. Rules, and some basic  strategy, can be found here.

Your Assignment

For this assignment, you will create a file named <username>.py, (where <username> is your username) which contains the following 2 python functions:

Your nextMove (and nextMoveR) should return either a tuple representing the position on the board to move, or the string "pass". (That is, if you return (3,4), you mean to set board[3][4] = your color). Note that a pass is only valid if there are no other moves to be made.

Your nextMove should do a minmax search, with alpha-beta pruning. You should spend some time on a good evaluation function. Singlular extensions and quiescent search may also be a good idea, but are not required. Note that either making an illegal move, or running out of time, will lose the match.

Provided Files

The following files are provided to help you get started

For example, you could have two random players play against each other with:
% python gameplay.py randomPlay randomPlay

If you wanted to play simpleGreedy against randomPlay (with simpleGreedy going first), seeing all the moves, with a clock of 150 seconds:

% python gameplay.py -t150 -v simpleGreedy randomPlay

Important Notes

Grading

This assignement is worth 100 points

Contest

I will run all of your programs against each other, playing both black and white, with a time limit of 320 seconds. The overall winner will recieve an Amazon gift certificate. Places 1, 2, and 3 will receive homework extra credit of 30pts, 20pts, and 10pts.