An Experimental Chess Program

Page last updated: Jan. 31, 2012

 

Some History

 

I started EXchess (short for ÒExperimental Chess ProgramÓ) 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 twelve years.  The current release is a source code only version that can be compiled on a variety of systems to run in ÔtextÕ mode or under a xboard/winboard compatible graphic interface. See the readme file for changes since the previous version. 

 

Features

 

EXchess is an amateur chess program that can be run in plain 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, dynamic search extensions, hash tables, history tables, quiescence search, material swap function, interface with Namilov endgame tablebases, late move reductions, chess skill setting, 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. TD learning is off by default in the released code but can be enabled through the search.par file.) 

á      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.

 

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.

 

Source Code Version

 

á      EXchess v6.10 beta source code, click here

Note: v6.10 has a number of minor improvements over v6.02, including somewhat better king safety, somewhat improved piece and mobility scores via CLOP optimization, and a few minor search enhancements. Updated again Jan. 31 (no change in version number) to correct a minor bug in reading score.par file, should not affect playing strength.

 

See the included readme.txt file for instructions on how to compile and run EXchess.