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
oz@yetti.UUCP (Ozan Yigit) (02/02/87)
To all interested parties (chess 0.5 to be posted): ------------------------------------------------------------- Before I accidentally cancelled the article, I got informed by two individuals who also typed in the same program, and did a C conversion. I am waiting their versions, to merge everything together into a consistent package to send to mod.sources. Based on the new information, the package will contain a C version, various bugfixes and enhancements. ------------------------------------------------------------- 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 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