Back Up Next


Ferret is a "normal" chess program.  By that I mean that it uses alpha-beta full-width search, a quiescent search, a transposition hash table, an evaluation function that is called at the tips, and so forth.

It uses null-move forward pruning, and for that I am indebted to Chrilly Donninger, who did not invent this technique, but he made it accessible to the amateur community via an ICCA Journal article (Vol. 16 #3, September 1993).

The program uses numerous common extensions such as check extension, recapture extension, and single-response to check.

It also uses a sort of singular-extension that is loosely based upon the extension of this name that appears in Deep Thought and presumably Deep Blue.

The evaluation function is designed to catch common features without being slow, but it's slow enough that the program isn't particularly fast.

The program uses endgame databases of my own design and construction, but which aren't any better than the Nalimov, Edwards, or Thompson endgame databases.  I wrote my own because I didn't want to take advantage of code written by others, since I felt that the program would be less mine if I did so.

The program has a series of special case low-material evaluation functions that it uses when endgame databases are not present, and in some cases when they are.

The program is written 100% in C, and is portable to any platform that runs any Windows-based operating system, including multiprocessor machines.

Send mail to with questions or comments about this web site.
Copyright 2001 Bruce Moreland
Last modified: 11/04/02