Introduction
============

The latest documentation is available in HTML format in the
wallyplus/docs/en folder.

The original program wally.c with Kevin Stock's modifications
is kept in file wally.c.orig in the folder Documentation.

Wallyplus is a new version of the original wally.c program by
Bill Newman. I converted the original C source to C++.

The C++ version broke most of Kevin Stock's modifications as
described below, since I was only interested in the game
playing engine. I am implementing the Go Text Protocol (V 2)
to allow Wallyplus to play in a wider range of environments.

There are various front-ends that can deal with saving/editing
the games in SGF format.

The next step is to implement a stronger go engine. But that's
for the future...

A much stronger program is Gnu Go, which is also the test-bed for
the sample implementation of the GTP protocol. The Web page for
Gnu Go is at:
http://www.gnu.org/software/gnugo/gnugo.html

Documentation for the Go Text Protocol can be found in the
Gnu Go developers page:
http://www.gnu.org/software/gnugo/devel.html

I have managed to make Wallyplus play against Gnu Go (or against
itself) using a modified twogtp1or2.py Python script. This
script can also be found in the Documentation folder.

Andrew D. Balsa <andrebalsa@mailingaddress.org>, September 2002


Below are two README files for previous versions of Wally.

--------------------------------------------------------------

Wally is a go-playing program written by Bill Newman. The program is unlikely
to hold the interest of a human opponent very long, especially since it plays
an obnoxious endgame, singlemindedly throwing in to the enemy's territory 
whenever it sees the opportunity to keep the opponent from making the maximum
number of eyes. The program is approximately 30k.

However, WALLY might be of interest to programmers wondering how far you can 
get with a simple pattern-matching program, or just looking for more patterns
for their tables. The program is documented only by comments inside.

Kevin Stock added MGT output to WALLY, Dieter Garling ported it to MS-DOS. The
program is copyrighted but freely available for not-for-profit use.

Usage: wally [boardsize] [-even] [-d] [[-cat filename] | [-mgt filename]]
  
  2...19  any number as the first argument will be used for the boardsize
  -even   you will play an even game, otherwise wally gives you a handicap 
          depending on the boardsize, 
  -d      turns on debugging output
  -mgt    writes the output record in a form suitable for mgt
  -cat    writes the output record in a form suitable for wally <file

Within the game you can type a position, a "." for resign or "pass" for 
passing.

This description is by Dieter Garling.

--------------------------------------------------------------

From: kstock@isfrance.encore.fr (Kevin Stock)
Subject: Adding MGT output to WALLY

It turned out that it was even easier than I thought to get
Wally to produce output files that MGT can use. The changes
are attached below in diff -c format for patch. If you don't
have the patch program, I can send you a modified source.

To use the new code, you have to compile Wally with -DADDED.
(If you have xtx, I've added an xtx line which will do this
automatically.) The additions are:

  Three new options:

  -d  turns on debugging output
  -mgt  writes the output record in a form suitable for mgt
  -cat  writes the output record in a form suitable for wally <file

  The game score is printed even in the case of a resignation.

Feel free to add this to your archives and/or post it to
rec.games.go (I can't post anything at present).

  ,---------------.
,-+-------------. |    Kevin Stock
| | E N C O R E | |
| `-------------+-'    kstock@gouldfr.encore.fr
`---------------'      kstock@gouldfr.UUCP



OK, so mgt only uses a..s in its input file! Boy, is life complicated!

At the end of this message is a supplemental patch, which does the
following:

	1)	uses a..s in the input files, instead of a..hj..t
	2)	adds a comment for each move
	3)	creates a new node for a pass, so the comments
		don't run into each other and get lost
	4)	uses Size instead of SiZe.
		This is probably wrong, but it's convenient.
	5)	introduces a PATCHLEVEL (== 2)

I'll send you another mail which is a single patch file to apply both
patches, which would be more suitable for posting (if you haven't put
the first one out yet).

Whew.
	Kevin


