New: Tournament Results
For this course, your project is to write an AI program that can play the game Gobblet, which is sold by Blue Orange games. Your program will have up to 25 seconds to make its move (amount of time subject to change). At the end of class there will be a tournament among the AI programs, and the team (or individual) with the winning program wins extra credit points worth half a letter grade.
For rules on how to play and an online opponent see Boardspace.net's Gobblet page.
We will be playing the tournament in the CS lab so you must make sure that your programs run there. To be fair in terms of processing power, you may not execute code on remote machines.
Every team will play every other team twice, once where each team goes first. The total number of wins will determine the ranking. If there is a tie in number of wins then if one team beat the other directly either 2-0-0 or 1-0-1 then the winning team will place ahead of the losing team. If there is still a tie, your instructor will conduct a to-be-determined tiebreaker or declare a draw.
The much anticipated game manager written by the CS 401 team is here: Gobblet_Manager.zip. Uncompress the zip file file and see the README file for details. You can run the manager by double-clicking on the jar file. Connect to the manager with a TCP socket on port 9999. Your client should communicate with the game server using buffered readln/writeln calls sending string data rather than raw socket send/receive calls. Lines of text sent by the server are terminated with \r\n.
Also available is a watcher, a separate program that connects to the manager and allows you to view a game in progress or play as a human. The binary is here: Gobblet_Watcher.zip
I've written a basic AI program that you can test your program against. It's written in .NET so it requires Windows. Be careful not to tune your program too much just to beat my program. Beating mine doesn't necessarily mean yours will play well against other programs! However, if your program does beat it, you can have the satisfaction of beating your professor.
You are welcome to use the provided source code as you wish. I make no guarantees that these programs are free from bugs...
Your program should input moves as a string using the following format:
(1,1) | (1,2) | (1,3) | (1,4) |
(2,1) | (2,2) | (2,3) | (2,4) |
(3,1) | (3,2) | (3,3) | (3,4) |
(4,1) | (4,2) | (4,3) | (4,4) |
More information will be posted later about the tournament rules.