CSE 473 Introduction to Artificial Intelligence
Autumn 2001
1.
Game Server
All games in the tournament will be played using the Othello service of GGS (Generic Game Server - http://www.neci.nec.com/homepages/igord/gsa-ggs.htm). GGS supports a suite of different board games including Othello, Chess, Go, etc. to name a few, each of which is a separate game service that is connected to the main server. The role of GGS will be merely that of a communication medium. The programs you developed will generate the moves for the game. These moves will then be replicated manually on the game server using one of the GUI clients listed below.
There are two reasonable Othello clients for GGS that you can use.
1. Windows users: Lion is a neat Othello client that is available as a free download at http://external.nj.nec.com/homepages/mic/ggs/chris/index.html. The zip file when extracted has the Lion.exe executable and also useful documentation.
2. Linux users: The GGSA Java client is available on the instruction lab PCs. It is also available for download from the GGSA web-page http://external.nj.nec.com/homepages/mic/ggsa/ggsa.custom.html.
3. One of the GGSA Applets reachable from http://external.nj.nec.com/homepages/mic/ggsa/ggsa.html can also be used. However, I couldn’t reliably test these out on different browsers (definitely not on IE).
Some of the features of each of these are discussed in the sections below.
2. Individual
Games
Each match up in the tournament will be decided on best-of-three games. Each of these match-ups will be played at a reasonable time that is agreed upon by the two teams involved. Each team will need a unique id and a password to log onto the game server.
A typical match scenario between TeamX and TeamY will be as follows –
1. TeamX and TeamY log onto the GGS Othello service. Each has informed the other of their chosen user id.
2. TeamX requests for a match (by identifying TeamY by their user id), and the request is accepted by TeamY. Each such match request is accompanied by some game parameters (time, who plays first, etc.).
3. TeamX and TeamY start their respective Othello programs in a human vs computer mode.
4. For TeamX the moves that it shall play are those that are generated by TeamX’s program. TeamX will consider TeamY’s moves to be the human move. Similarity for TeamY, its moves will be those generated by their program, and TeamX’s moves will be considered as the human move.
5. If it is decided that TeamX moves first (i.e. TeamX plays black), then the first move is generated by TeamX’s program. This move is replicated by TeamX on GGS. TeamY’s program is started with human to play first, and the move played by TeamX is entered as the first human move.
6. The game proceeds along the same lines until a winner in decided.
7. The next game is requested again as in step 2. This time TeamY gets to play first (specified during the match request).
8. Proceed similarly until one of the teams wins two games (not necessarily continuous).
The tournament will proceed along a knock-out basis according to the pre-defined draw (last section).
3. Using
GGS Clients
1. Lion
a. Connect on the GGS Server by clicking Connect under the GGS tab. You shall be asked for a user name and a password. Choose the user name that you had communicated with the team you were due to play.
b. After you have connected you can view the list of other players who are also connected in one of the windows that will pop up.
c. Request a match by clicking New Game under the Reversi tab after you have connected to the game server.
d. Identify your opponent by his ID. Choose the board size to be the default. For the first game in a match up the requester chooses the color to be Random. The other settings are left as a default. The Time is set to 15:00//0:00 (and not the default 15:00//2:00). This indicates that the playing time for each team is 15 minutes. This is the total time for all the moves. There is no time control on each move. This means that each of your moves should on average take about 30 seconds. A team that runs out of time looses.
e. A game board such as the one below comes up. Each move is made by clicking on the particular board position. Moves made by the opponent are immediately displayed on the board. As can be seen below, there are indicators on the times left for each of the opponents and also a game log. As soon as it is your turn to play indicate the move made by the opponent to your computer program. As soon as your program replies with the next move make the move on the board.
2. GGSA
Java Client for Linux/Unix
a. The JAR file for the software is installed in /cse/courses/cse473/01au/GGSA. Copy the following script into a file and execute the same to run the client. Replace the YOURLOGIN and PASSWD by your chosen user id and password. Take care also to set your DISPLAY variable appropriately so that the windows that show up will appear on the correct terminal.
#! /bin/tcsh –f
setenv CLASSPATH /cse/courses/cse473/01au/GGSA/GGSA.jar
java client.GGSA ”ho_external.nj.nec.com%po_5000%lo_YOURLOGIN%pa_YOURPASSWD%sv_Othello”
For example I might store the above script in GGSA.Client. I make this file executable by doing “chmod +x GGSA.Client”, and then execute the same.
b. Unlike the Lion program, GGSA connects you directly to the Othello game service. A window similar to the one below results. The second panel indicates the other people who are logged on to the Othello service.
c. Games are requested by clicking on Match Request under the Othello tab. As before the opponent is identified by the user name. The time scheme is the same as the case of Lion. 15 minutes total time per team.
d. The game window such as the one below appears. The times are indicated in the right panel, and the last moves played are indicated below the timers.
e. Each move is made by clicking on the particular board position. Moves made by the opponent are immediately displayed on the board. As can be seen below, there are indicators on the times left for each of the opponents and also a game log. As soon as it is your turn to play indicate the move made by the opponent to your computer program. As soon as your program replies with the next move make the move on the board.
4. Miscellaneous
Questions
§
Who plays first? The first game is requested by
the team whose name is alphabetically the first. The team to play first (black)
is chosen at random. This is done by indicating so in the match request. For
Lion there is an explicit Random option, but for GGSA you do so by neither
choosing Black nor White for Color. For all the subsequent games the color is
chosen explicitly by the requestor to be the opposite of that chosen in the
earlier game.
§
How do teams communicate with each other? GGS
lets you chat too. Find out how.
§
What if a team makes an invalid move, or a program
crashes? Invalid moves are not accepted by the game server. If your program
returns an invalid move (due to a bug), you communicate the same to the
opposing team and abort the game. The game is replayed. Similarly, if your
program crashes for some reason the game is aborted. But only one such abort is
allowed during the course of an entire match-up. A second abort leads to a
resignation and a loss.
§
What if my game server crashes? Restart the game
server and replay the unfinished games.
Team
Name |
Members |
Email @cs |
East Wind |
Jina Lee |
jina |
|
Chia-Chi Li |
fonzi |
OLLETHO |
Phat Tran |
phatt |
|
|
|
mozzarello |
Ben Nordstrom |
bennord |
|
Renata Van Diest |
renata |
Shallow Thought |
Daniel Stein |
destein |
|
Ryan Tremblay |
ryanwt8 |
NullPointerError |
Jeremy Coriell |
jcoriell |
|
Adam Sanderson |
adams |
Hanging Knives |
Harris Chan |
harris |
|
Raymond Yip |
ryip |
Team Gallifrey |
Zachary Crisman |
zcrisman |
|
Erik Curre |
curree |
The Steepest Ascent Hill Climbers |
Sam Riesland |
str |
|
Mattew Von Bargen |
matthew |
tu far |
Danielle Farrar |
dcfarrar |
|
Karen Tu |
kytu |
Random Guessers |
Todd Hendry |
hendrytl |
|
Peter Jantz |
pjantz |
TeamX |
Daniel Horowitz |
horowitz |
|
Justin Huff |
jjhuff |
The BU |
Hector Ramos |
fernando |
|
Rodger Visitacion |
rodger |
Electric Savants |
Jared Roberts |
wjr |
|
Brendan Walker |
bwalker |
Deep Purple |
Edward Allred |
biged |
|
Devang Patel |
devang |
Little Boy |
Colin Connors |
colinc |
|
Mike Loholt |
loholm |
MJ |
Miguel Molina |
mamc |
|
John Troy |
jtroy |
dave and john |
John Day |
jonday |
|
David Frield |
friedl |
OderintDumMetuant |
Nathan Ratliff |
ratliffn |
|
Chris Twigg |
cdtwigg |
Bigbooty Enterprises, Inc. |
Eric J. Smith |
ejs |
|
Walter Weeks |
ww3 |
Sean McManus |
Sean McManus |
seanmc |
|
|
|
DimThought |
Brett Sherman |
bret |
First Round |
(by
Friday evening) |
|
A1 |
OLLETHO |
Electric
Savants |
A2 |
DimThought |
The
Steepest Ascent Hill Climbers |
A3 |
NullPointerError |
BigBooty
Enterprises, Inc. |
A4 |
TeamX |
MJ |
A5 |
Random
Guessers |
Tu far |
|
|
|
Second Round |
(by
Sunday) |
|
B1 |
Mozzarello |
A1 |
B2 |
Little
Boy |
Shallow
Thought |
B3 |
East Wind |
A2 |
B4 |
A3 |
Hanging
Knives |
B5 |
The BU |
A4 |
B6 |
Team
Gallifrey |
Deep
Purple |
B7 |
OderintDumMetuant |
dave and
john |
B8 |
A5 |
Sean
McManus |
|
|
|
Quarter Finals |
(by
Monday evening) |
|
C1 |
B1 |
B2 |
C2 |
B3 |
B4 |
C3 |
B5 |
B6 |
C4 |
B7 |
B8 |
|
|
|
Semi Finals |
|
|
D1 |
C1 |
C2 |
D2 |
C3 |
C4 |
|
|
|
Finals |
|
|
|
D1 |
D2 |