EXchess: An Experimental Chess Program
Page last updated: Jan. 21, 2006
Some History
I started EXchess back in
1996 as a way to learn programming and to have a hobby to work on. EXchess was very successful on both
counts, and I developed it in my spare time until I had to write my PhD in
1999. By that time, EXchess was playing
pretty well (~ master strength) and was counted a reasonably strong amateur
chess program (although I am sure it has slipped relative to the serious
amateur programs of today).
EXchess has sat on the ÒshelfÓ except for some minor updates over the last
six years; however, IÕve always wanted to make it easier to use by giving it a
graphical user interface. In my
spare time over the last few years, IÕve re-written some of the code, and I
found a great GUI library, the Fast Light Tool Kit (FLTK). I adapted the interface from the
checkers example in the FLTK distribution to serve as a graphical skeleton for
EXchess. This interface has grown
to be pretty usable over the last year, so IÕve finally decided to release a
new version of EXchess.
Features
EXchess is an amateur chess
program that comes with its own graphical user interface. EXchess can also be run in text mode,
or it can be interfaced with standard chess interface programs like
Xboard/Winboard or Arena. The main
features of EXchess areÉ
á
Advanced search
algorithms including principle variation search, null move, null move
verification, dynamic search extensions, futility pruning, hash tables, history
tables, quiescence search, material swap function, interface with Namilov
endgame tablebases (disabled in current version), and context specific
evaluation.
á
Opening book learning
(off by default: for play against
other computers, this should be turned on by editing the Òsearch.parÓ file).
á
Evaluation learning
using the TD (temporal differences) leaf algorithm. EXchess will improve its ability to evaluate a position each
time you defeat it! (In practice, the gains from this algorithm are small if
the evaluation is already well optimized, but the gains are impressive if one
starts from a poorly optimized evaluation function.
á
You can modify how
EXchess thinks by editing the search.par and score.par files that come with the
program.
á
You can download the
source code for EXchess. You are
free to modify the source code under the terms of the GNU Public License.
See the readme file for more details.
Future Features
IÕve got some ideas for
future improvements (when I have the time) É
Near Term: Add the ability to graphically
(point-n-click) setup a board position, and add an Òanalysis modeÓ where
EXchess will give a running evaluation while the player moves the pieces and
tries different combinations.
Longer Term: Improve playing strength, and add the
ability to play against different ÔpersonalitiesÕ with different
strengths.
Downloads
EXchess
is released under the GNU Public License. This program is distributed in the
hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
EXchess
is beta quality software, meaning that it has not been extensively tested on a
wide variety of systems and may still contain bugs. Use it at your own risk. If you encounter any bugs, please let me know, and I will
fix them as I have the time, but please understand that my time to work on this
project is limited, so I may not respond with bug-fixes immediately.
I have (or will soon have)
compiled EXchess for three different kinds of systems: Mac OS X (10.4.3),
Windows XP, and Linux (Ubuntu 5.04).
These versions may work on other similar versions of the same operating
systems, but I have not tested them there.
Compiled (ready to run)
Versions
á
EXchess v5.01 beta for
Mac OS X (10.4.4), click here
á
EXchess v5.01 beta for
Windows XP, click here
á
EXchess v5.01 beta for
Linux (Ubuntu 5.04), click
here
For these versions, EXchess
comes in a zipped folder. Just
unzip the folder. Click on the
EXchess icon inside the folder, and it should run. EXchess doesnÕt come with an installer, so youÕll have
to remember where you put this folder if you want to run EXchess again. Perhaps IÕll include an installer in a
future version.
NOTE: The Mac version is not a ÒuniversalÓ
binary, meaning that it will run only in emulation mode on an intel based
Mac. I hope to have a ÒuniversalÓ
version compiled and posted here in the near future.
Source Code Version
á
EXchess v5.01 beta
source code, click here
I have no time to support the
source code version, so please donÕt send me questions about how to get it to
work on your system. If you are an
experienced programmer, and you canÕt get it to compile even on one of the
systems listed above, please do let me know (perhaps I forgot to include
something).