ANS Forth Chess
Page updated 09/18/02
Ian Osgood's ANS Forth Chess program was released 10/4/01 in a form
that runs under Tom Zimmer's win32Forth, as TSCP after the C version.
It and has been improved several times since then. The latest
version 0.A was uploaded 09/14/02 It is available for ftp
download at this site as the source file
TSCP.F and
in zip compressed source form as
TSCP.ZIP.
However Ian's program has diverged enough from the original TSCP
to warrant a new name.
FCP.F and
FCP.ZIP were
posted 9/19/02 and has a null-move heuristic and enhanced check
extension.
F21chess 1997 - 2000
I have been interested in implementing a computer chess program for
F21
for a long time. Chess is an example of a problem in logic that does
not require floating point math, is naturally parallel, and is
understood by the public. It is interesting that 1997 is the year
that a machine called Deeper Blue defeated the current world's chess
champion. It is also interesting that Deeper Blue uses a simple
brute force approach to the problem and simply leverages off of its
high speed and wide parallelism.
I asked in the internet newsgroup comp.lang.forth if there were any Chess programs in Forth. I heard about Schaakprogramma V1.0 in Dutch for F-PC by Lennart Benschop and got a copy from the author. The comments in Dutch were not useful to me so I had the comments translated to English and began porting the program from F-PC which is a 16 bit byte addressing Forth environment to ANS cell based Forth requiring at least 16 bit cells. I then compiled the ANS version for the F21 and added two windows for the chessboard and list of moves, and added a graphic display of the chessboard.
The source code to the version in Dutch for FPC, and an English language version in ANS Forth are all available in the CHESS.ZIP file at this site.
This is copy of the display from the Windows Simulator for F21. Tt looks very much like the display on a TV monitor by F21Chess running on F21 in low res color video mode.
The program is very simple and does not play a strong game of Chess. It has no library of opening or closing games, it does make a simple strategy switch for end game, but uses a simple brute force search approach. It uses a very simple method for evaluating the value of