Chess 0.5 sources to be posted (real soon now...)
Ozan Yigit
oz at yetti.UUCP
Fri Jan 30 06:11:04 AEST 1987
To all interested parties (chess 0.5 to be posted):
Some of you may recall that I had posted a message about
a chess program to be posted, without giving too many details,
due to the unfinished correspondence with its authors.
Now the correspondence is finalized, here are some details.
Several months ago, myself and a colleague finished
typing in the entire (well, almost) Chess 0.5
from the "Byte Book of Pascal" (Creating A Chess Player).
At that point, I contacted the authors, Dr. Peter Frey and
Larry Atkin, for a written permission to distribute the program
for non-commercial research/work/enjoyment/etc.
I now have a complete written correspondence, and permission
to distribute Chess 0.5 through various networks, with appropriate
copyright notices for non-commercial use.
There is, however, a little snag: we had omitted most of the
comments while typing the program, and Authors insist that the
comments be put in, so that recipients of the program will not
be lost in the ~3000 lines of pascal code.
Currently, I am typing in the comments, and expect to finish
within a week or two. [I have other things to do besides typing
these comments.]
What do we have here
What we have is, in my opinion, a nice start for something
more powerful. This little program (3000 lines) includes
some of the important algorithms available in tournament-quality
programs:
o Shannon-A type full-width search
o Bit board representations (Kaissa, Chess 4.5 etc.)
o Incremental updating
o Staged move generation
o Killer heuristic
o Essentially the Chess4.5 Material Balance evaluator
o Important material bonus values, weights, etc.
for more interesting evaluation.
What we do *not* have is also as important:
o No opening library
o No transposition tables
o No speed
Authors, after all, just intended to write a *pedagogical*
chess program, not a tournament program. Even at this level,
it is, in my opinion, much better than some of the other
programs I have seen, both in algorithms and in implementation.
The package to be distributed:
I have put in some work to improve the program right off the
bat, and re-wrote all bitmap handling routines in VAX/UN*X
assembler. This improved the program by 20-fold. (from 1 node/sec
to 20 nodes/sec :-)
I have also obtained the permission of Ken Thompson to include
a very old (the same one used by /usr/games/chess) opening library
in the package. I do not have the time to write a compiler for
the library to convert it to binary for Chess 0.5 to use.
This is left as an exercise for the recipient. :-)
Hence, at the very least, the package will contain:
o Pascal Sources (copyrighted - compiles under BSD Pascal)
o Support routines in VAX assembler
o 9-part opening book sources (non-copyrighted)
o Misc. notes on the program
I have also started a C conversion of this program, and
have been able to convert 70% of it correctly. If you want
to do your own conversion, go right ahead, but I expect that
it will be a discouraging exercise, unless you are as
motivated about it as I am. By then, my conversion may hit the
net anyway.
-------------------------------------------------------------
I cannot guarantee that I will post the C version right away.
I may first do a selective distribution to gather various
"ports" for Mac, Amiga, ST, Sun etc., so that there will not
be any *black box* versions of the program floating around,
with neat little notes like "send me 15 bucks so that I can
keep improving it" etc. I did not spend all this time and
energy for somebody else's self-serving plans. I did it for
public good in general, and I will see to it that this program
gets as wide *in-source* distribution for as many machines as
possible.
Those of you interested in helping for the C version, and its
various clones on different machines [I.e. a nice screen
representation for the board, other assembly support routines
etc.], contact me *after* February 25th.
-------------------------------------------------------------
What can be done
o Convert to C, and in parts, to assembler [see above].
Add a reasonable (5,000 moves) opening library [included],
add transposition tables, add Greenblatt and Chess4.5 style
hash tables, throw it onto a Sun3/200 series machine,
[or a cray if you have one handy..]
make sure that it evaluates at least 30,000-50,000 nodes/sec
(Cray Blitz = 100,000 nodes/sec Hitech = 175,000 nodes/sec)
and enter it to the next tournament. :-)
o Convert to assembler in full, throw it onto your ST, and
include rest of the ingredients (hash tables etc.).
Enter into the next microcomputer tournament.
o Experiment !!
Let me see now... we have about 9 years of development, and
120,000 nodes/sec to catch up, with the last pragmatic account
of a chess program with full sources dating back to 1978. I am
forever indebted to Frey and Atkin for their series of articles,
which at least presents the rest of us (those who have never
written a chess program and cannot get a hold of one) with
something interesting to start with.
What else is out there
During the search for the wild beaver ... I mean a chess program,
I came across the following:
Sargon: (1978)
Sources Published by Hyden press, implemented
in Z-80 Assembly. A bizarre, and old-fashioned
implementation. In my opinion, not very useful.
Pdp-11 Chess
Originated from Checkmo-8, a Pdp-8 Chess
program, runs under RSX, and in Pdp-11 assembler.
A shannon-B type program, somewhat poor in parts,
old-fashioned, and slow.
../games/chess
Ken Thompson's program (soft-belle). Licensed,
restricted etc. etc. etc. Sources can be found in
an old usenix tape, along with a respectable opening
library [included in the Chess 0.5 dist].
It is not what I was looking for, but It is,
in my opinion, a neat little program to benchmark
against. Before it was shelved, it had a rating around
1300.
Turbo Chess
Part of Turbo Pascal Gamesworks. It *looks* like a
nicely written program, complete with opening library,
neat interface, program solving etc. Copyright by
Borland International. D.F. Beal gave a bad review to
this program in Icca Journal: "..move making and
and search routines are horribly written.."
I decided against it. Perhaps it is a good starting
point - I dunno.
GNU Chess
An interesting program, probably class D, and lotsa
information about it has been posted previously. I
shall not repeat it here.
misc (toy)
One in Fortrash, and one in basic. The one in Basic is
complete junk. The one in Fortrash is also badly
structured, and somewhat unreadable. Nothing particularly
interesting.
--
The best way to have a Usenet: [decvax|ihnp4]!utzoo!yetti!oz
good idea is to have a Bitnet: oz@[yusol|yuyetti].BITNET
lot of ideas. Phonet: [416] 736-5053 x 3976
More information about the Comp.sources.unix
mailing list