Gothello Project
Software and Systems
Preliminary versions of several pieces of software are
available. The model under which they operate is as
follows: a game referee daemon is started manually, with a
given ``server number'' in the range 0..10. Two game
clients connect to the server using the hostname and server
number, one requesting to play Black, the other White. When
both players have successfully connected, the Black player
makes the first move, and the game begins. The referee will
catch illegal moves, and detect game termination.
Several pieces of software are
available in support of this plan (you may download them
all as a gzipped tar archive
if you prefer):
- Gthd is the Gothello game
daemon. It is invoked via e.g.
java Gthd 0
where the 0 is the server number.
- gthclient is a C client library
designed to make it easy to communicate with the
game daemon. It accepts and returns moves as
two-character strings indicating in lowercase
algebraic (chess-style) notation the
move being made. Note that you may need to compile it with the
C++ compiler if you are using C++, to avoid the name
mangling (or use extern "C"). Also note that
you will need to compile with -lsocket -lnsl
on the Solaris boxes, to get the networking code you
need.
- GthClient is a Java client class
designed to make it easy to communicate with the
game daemon. It accepts and returns moves using
Move objects, which happen to be identical to those used by the
Gthd daemon.
- Documentation includes
a Gothello server white paper
[PS][PDF]
which
defines the rules using the Z (pronounced
``Zehd'')
formal notation,
which is based on First-Order Logic with integer sorts.
It also describes in full detail the ASCII stream
protocol used for client-server communication. Thus,
those who want to ``roll their own'' are not tied to the
client libraries.
There is also library documentation for the
C game client, including
a HOWTO and a UNIX manual page in various formats.
Finally, there is documentation for the
Java game library,
including a HOWTO and JavaDoc for the necessary classes.
- Grossthello is my sample Java
implementation of a Gothello player, used mainly for
debugging. It is slow and pathetic, but may serve as
a good example or starting point. Note that you need
to have your CLASSPATH environment variable pointing
at the grossthello, gthd, and
javalib directories in order to have this thing
run.
The software is not carefully tested, but should work.
I have successfully run some sample games with Grossthello and
the daemon.
Last Modified: 2001/11/26
Bart Massey, <bart@cs.pdx.edu>