From: huff@mcclb0.med.nyu.edu (Edward J. Huff)
Subject: Review:  Dragon Go 2.1 at Sumex
Organization: NYU Chemistry, 31 Washington Place, NY, NY 10003 USA
Date: Wed, 26 Aug 1992 08:22:27 GMT

Review:  Dragon Go 2.1 at Sumex

Summary:  Try this program.  I learned to play Go from it.
You need the information given below to get started, since
the menu items are not very clear.  Once the game is running,
you play by clicking on the point where you want to place a
stone.  Be sure to wait for the computer to reply before clicking
on another point, or the comments window is erased.  When a
comment like "D6 can eat D5" appears, it means you are about
to loose the stones connected to D5.

This is the only Go program I have used.  Anyone who has used
another Go program, please e-mail information.  (No, I do not
read this newsgroup.  Too much volume.)

Also, will someone who knows how please submit this review
to Sumex so that it appears with or near the program?  (If I
have made any mistakes, they should be corrected first).

The documentation included states that the game is public
domain (contradicting the copyright notice in the about
box).  "The author, Don-yueh Liu, has provided the runnable 
object code of the program to the public, free of charge.  
It is in the public domain, and may not be distributed for
commercial gain.  Please distribute it freely to whomever 
you wish. "  The about box lists the author as Liu. Dong-Yueh.
I guess they didn't really mean "public domain" but just
"licensed for noncommercial distribution."

Has anyone ever managed to contact the author?  If anyone
knows how, please forward this review to him.

The program is compiled under a very old version of Think C,
and as a result will probably not work under system 7, and
certainly not on a Quadra.  The old Think C library patches
the segment loader trap, and when a program segment is loaded, 
it patches the code.  This fails on a Quadra because of the
instruction cache.  I use it under 6.0.7 (multifinder)
on a II with FDHD upgrade.  It absolutely requires that the 
files in the game folder "1.Dragon" not be moved.  The 
application hangs if you move it to another folder and 
double click it.

To make the menus easier to understand, use ResEdit to
change "Calculating" to "Find Score" and "Place Handicate"
to "Place Handicap".  You could also change the string
"the game is stop" to "the game is over".  

You can save games (into a text file) but cannot restore them.
These game files can be opened with TeachText or any word
processor.  To replay a game, arrange the windows so that
you can see the TeachText window while playing, and copy
the moves.

To use the game, you select the Place Handicap menu item
and then give the computer it's handicap.  (Click on the dots
where you want to place stones).  Then choose "Play"
from the Game menu, wait for the computer to accept the
handicap, and make your first move.  If you don't know how 
to play, you will need to go first and take a handicap yourself.

Black plays first, and the handicap stones are black's first move.
To go first, select "Reset" and click on the "man play first" radio
button.   The choose "place handicap" and make your first move
which can be as many stones as you wish.  Then choose "Play"
to tell the computer to make the second move.  I believe that
the handicap stones are supposed to be played on the black dots,
but the program permits them anywhere.  It would be advisable 
to try the 9x9 board first.  The secret to this game is that you 
have to enclose two "breathing holes" with stones of your color.

The "take back" menu item is not well done.  It fails if you
accidently choose "pass" and want to take back your pass.
It restarts the game from the beginning and redoes all of
the moves, in order to build up the game tables.  One of these
tables in not properly reset:  the patern matcher reacts as
if some of the removed stones are still there.  

Frequently, what you want is to take back say the last 10 or 20 moves.
I do this using MacsBug:  set a breakpoint at "TakeBack+18"
and modify the value of D0 to an odd number equal to
the number of moves to keep.  The value of D0 is the number
of moves it was going to keep.  The value is in hexadecimal,
and be careful to write 0A1 not A1 if you want to keep 161 
moves.   MacsBug considers A1 to be the contents of
register A1 but takes B1 as an integer.  Same for A0-A7 and D0-D7.
The latest MacsBug is available free from ftp.apple.com.  
Put the MacsBug file and the MacsBug prefs file in your 
system folder.  No more Bomb alerts, instead you get MacsBug 
and have to know to type "rb" for "reboot" or press the triangle 
reset button. Sometimes "es" (exit to shell) works, or you can take
MacsBug out when not using Dragon.

The relevant commands are: press the debugger button on the 
side of your mac.  That is the plastic thingy that Apple supplies 
without any explaination.  Push the circle, not the triangle.  
Make sure that Dragon is the current application.  Type 
"br TakeBack+18" and "g".  Then choose the takeback menu item. 
You are back in MacsBug.  The current value of D0 appears on the left.  
Type "D0=61" (if it was 71) and "g", and the game will be replayed from
the start up to hex 61 (that is, 6*16+1=97) moves.  If the author had
only released the source code, this could be fixed and I wouldn't be
writing about how to use MacsBug to work around it...  BTW the
"Mac" in MacsBug does NOT stand for Macintosh.  Motorola named
MacsBug before the Lisa existed.

The items under the trace menu let you find out why the program
decided to make the move it did.  They are of no use in figuring
out what YOU should do, so don't try to cheat.

I believe the object is to have 181 stones or more at the end
of the game.  Is this correct?  To find out the score, you have
to keep playing until all of the "prisoners" are removed, and
then select the "calculating" menu item.  The board is redrawn
with all holes filled in and the number of stones of each color
is displayed.

Either I am a very fast learner of go, or this program isn't
very strong, because I now give it 6 stones.  The strategy I
use probably wouldn't work against a good player:  I completely
enclose the center of the game, conceding the outside.  The
program has a pattern which forces it to try to keep me from
reaching the edge from the center, so I just walk around the
center and pretty soon have 3 sides enclosed.  That would 
give me about 13x13 = 169 stones, so I only need 12
more.  So I go for the fourth edge, and easily capture the
needed extra spaces.  At this point, my strategy is just to
keep it from covering any area inside my "stockade."  Since
the program apparently has no rule for trying to enclose
two "breathing" holes, this is fairly easy to accomplish.
I have saved a number of games where the program made
blunders, if anyone is interested in working on it.

Actually, I would recommend this program for learning some
of the principles of go, but maybe I have learned bad habits.
Does anyone out there know of a better game?  Is Nemesis
any better?  The documentation that comes with the
game says that this game was (as of 1987) at the state
of the art and was similar in strength to Nemesis.
Probably Nemisis has improved since...


Newsgroups: comp.sys.mac.games