[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

computer-go: New Orego code posted



A new version of the Orego code is up at:

http://www.lclark.edu/~drake/go/

There is nothing innovative or even passably strong here, so old hands will probably have little interest in it. On the other hand, it is (if I do say so myself) a very clean, small, well-documented Java library that allows one to write a Go program with very little effort. I've included the readme file below.

Peter Drake
Assistant Professor of Computer Science
Lewis & Clark College
http://www.lclark.edu/~drake/


Orego
24 April 2003

This jar file contains a Go library which supports the Go Text
Protocol (GTP). Two very small programs are included: one which
makes random legal moves and one which performs a very simple minimax
search.

TO PLAY AGAINST THIS PROGRAM

1) Obtain any graphical front end which support GTP. This code is
known to work with:

Goban (for Mac OS X)
http://sente.epfl.ch/software/goban/

gGo
http://igs.joyjoy.net/java/gGo/nav.html

GoGui (not as pretty, but has lots of features for developers)
http://sourceforge.net/projects/gogui/

2) Start up the front end and invoke this program as:
java -jar orego.jar

You may need to specify full pathnames, e.g.:
/usr/bin/java -jar /Users/yourname/go/orego.jar

You will probably want to reduce the board size to 9x9 or smaller to
keep the program's running time within reason.

TO SEE THE SOURCE CODE

Unpack the file:
jar -xvf orego.jar

UNDERSTANDING THE SOURCE CODE

If you unpack the source code in, say, /Users/yourname/go/, it will
create a tree of subdirectories rooted at /Users/yourname/go/orego/.
All of the .java files are currently in orego/lclark/, but there will
soon be some in orego/willamette/.

If, from /Users/yourname/go/, you run the command

javadoc orego/lclark/*.java

you will get a very nice set of .html documentation files. WARNING:
THIS MAY OVERWRITE OTHER .HTML FILES IN THE DIRECTORY. Look at
index.html in a web browser to see the detailed class documentation.

The main program is Orego. This invokes a GTPPlayer, that is, a
program which can respond to the commands in the Go Text Protocol
(GTP). If you want to write your own program which can interact with
a GTP front end, but don't want to spend time understanding our code,
just use these two classes and implement GTPPlayer.

Our heirarchy of player classes is:

GTPPlayer
AbstractPlayer
Competition (allows two AbstractPlayers to compete)
LegalRandomPlayer
MinimaxPlayer

The classes PointSet and Board are central data structures.
EvaluatedBoard is a subclass of Board used by MinimaxPlayer.

The RuleSet interface can be implemented to change the rules.
Currently the only implementation is ChineseRules.

The remaining classes implement either MoveSuggestor (which suggests
moves to consider) or Detector (which detects features about the
board). An easy way to improve the program is to write a new
implementation of one of these interfaces, then subclass
MinimaxPlayer so that it uses your new class.

OREGO HOME PAGE

http://www.lclark.edu/~drake/go/


COMMAND TO PRODUCE THIS FILE

jar -cmf jarinfo orego.jar readme.txt jarinfo orego