Lines Of Action 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):
- Gamed is the LOA game
daemon. It is invoked via e.g.
java Gamed 0
where the 0 is the server number.
- clib is a C client library
designed to make it easy to communicate with the
game daemon. It accepts and returns moves as pairs
of two-character strings indicating in lowercase
algebraic chess notation the start and endpoint of the
move. 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.
- javalib 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
daemon.
- Documentation includes
an LOA server white paper 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 in any fashion.
There is also library documentation for the
C game library
as a UNIX manual page, as well as formatted into ASCII
and HTML using groff.
Finally, there is javadoc documentation for the
Java game library.
- LOA-Q is my sample Java
implementation of an LOA 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 loa-q, load, and
javalib directories in order to have this thing
run.
The software is not carefully tested, but should work.
Last Modified: 2000/11/29
Bart Massey, <bart@cs.pdx.edu>