[net.sources] Chess 0.5 sources to be posted

oz@yetti.UUCP (Ozan Yigit) (01/29/87)

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