EXchess v5.01 (beta) by Dan Homan, homand@denison.edu => For updates see: http://personal.denison.edu/~homand/EXchess.htm This is "beta" software, meaning it has not been extensively tested on a variety of systems and may still contain bugs. Use at your own risk. This software comes with ABSOLUTELY NO WARRANTY of any kind. This program is freeware, distributed under the GNU public license. See file "license.txt" for details. I ask only that you e-mail me your impressions/suggestions so that I may improve future versions. *** NOTE1: Endgame tablebase support has been disabled in this version of EXchess. *** NOTE2: See notes on the source code version (below) for discussion of parts of this program that do not fall under my copyright and/or do not fall under the GNU public license *** New: EXchess has TD Learning now. See file "score.par" for details. EXchess has a logging function which can be turned on by setting the relevent parameters in the "search.par" file. When logging is "on", a new log file is created each time the program is started. The "MAX_LOGS" number is the maximum number of log files that can be created. No new log files will be created beyond this number - you must delete the old log files first. Some other values in the "search.par" can be used to modify how EXchess thinks! The opening book released with EXchess was built from an excellent file of PGN games created by Norm Pollock and released from his webpage: http://www.crafty-chess.com/down/Pollock/ Note that EXchess has the ability to learn from losses and victories in the opening book, but this ability is turned off in the released version of EXchess. It is turned off so that EXchess will not pursue a single winning strategy against humans but will continue to play a variety of openings. If you wish to use EXchess primarily to play against other chess programs, please turn this book learning feature back on by editing the search.par file! ------------------------------------------------- Notes on the Graphical Version of EXchess ------------------------------------------------- - This version has a simple (but I hope pleasing) graphical user interface written using the Fast Light Tool Kit (FLTK). - Pressing the space bar will generate a menu in most situations. Menu content may vary by context. - Scan through the menus to see the posibilities. - The interface began life as the Checkers example program that comes with the FLTK library. I changed it significantly to interface with my chess program; however, the credit for the interface in large part goes to the author of the FLTK Checkers program: FLTK Checkers Copyright (C) 1997 Bill Spitzak spitzak_at_d2.com - The chess piece images come from the Xboard/Winboard distribution by Tim Mann, http://www.tim-mann.org/xboard.html, and remain the copyright of the orignal artists. See the README.bitmaps files in the src/bitmaps directory of the source code version ------------------------------------------------- Notes on the console version for xboard/winboard. ------------------------------------------------- - This version has a serviceable text interface or it can be run with Tim Mann's Xboard (Unix/Linux) or Winboard. EXchess should detect that it is running under xboard or winboard, but to make sure, you can include the 'xb' command-line option if you choose... winboard -fcp "c:\directory\EXchess_console xb" - To run EXchess in plain text mode, just type "EXchessx" in the EXchess directory - There is an additional command line option "hash", you can set the hash size in megabytes like EXchessx hash 4 (for a 4 megabyte hash file, for example) If this option is used with winboard, use the line winboard -fcp "c:\directory\EXchess_console xb hash 4" The default hash size is about 6 megabytes. The size of the hash table may also be changed from within the program or using the parameter file 'search.par'. Note: Don't set the hash table size larger than about one-half of the available RAM. Doing so may cause swapping to the hard disk and slow the program down considerably. - Some basic help is available by typing "help" at the command prompt. - The file "wac.epd" is a testsuite and can be run by the "testsuite" command. - The 'build' command lets you make your own opening book out of a pgn text file. It requires 1-2 times the size of the pgn file in temporary storage space on the disk. The 'build' command can currently handle pgn files up to 60 MBytes in size... To use a larger file, you will need to modify some definitions in book.cpp and recompile. - The opening book has an edit mode called by the "edit_book" command when run in console mode. The opening book code also has a "GAMBIT_THRESHOLD" parameter (set in search.par file) which might prevent certain gambit moves from being played. --------------------------------- Notes on the source code version. --------------------------------- This software naturally includes some code and ideas gathered from other places and these are indicated in the individual source code files. All of these instances remain the copyright of the original authors who reserve all rights and their original licenses still apply. These include... ** interrupt code for winboard on MS-Windows in the function "inter()" in the file main.cpp is from Crafty by Bob Hyatt. Crafy's license is open source with the provision that changes to the code are shared with the community ** MT19937.c is a random number generator by Makoto Matsumoto and is released under the GNU public license ** The GUI interface in fltk_gui.cpp is based on the FLTK GUI toolkit Checkers example program: FLTK Checkers Copyright (C) 1997 Bill Spitzak spitzak_at_d2.com. FLTK is released under the GNU public license ** Piece images come from the Xboard/Winboard distribution by Tim Mann: http://www.tim-mann.org/xboard.html, and remain the copyright of the original artists. Xboard/Winboard is released under the GNU public license. See the REAMDE.bitmaps file in the src/bitmaps directory of the source code distribution. Other points: - In the "compile" directory, I've included two files I use for compiling EXchess on my Mac. These files can be "source" 'd to compile EXchess. The file to compile the gui version of the program will only work if you have the FLTK distribution installed on your system. EXchess also compiles fine on windows (under cygwin) and linux systems. Modifications to the compilation commands may be necessary on these systems, although the code should work without modification. EXchess will also compile fine under MSVC, but that takes a little more work. - The file "exchess.cc" is provided which includes all the necessary source to compile EXchess. On my linux system, I issue the following command to compile the console version... g++ -o EXchessx exchess.cc -O -pipe -march=pentiumpro -lm Your command line and compiler options will likely be different. - This will produce a console (text) version that is compatitable with xboard (on unix) and winboard (on winXP/NT). Notes on the console version (given above) apply. - If you have the FLTK GUI library installed, you can include the -DMAKE_GUI switch on the command line to make the GUI version - Once compiled you will need to build your own book from a pgn game collection file using the "build" command in the console version. Don't bother with a 'starting book' unless you know what you are doing. A book built in the console version should work fine with the GUI version of the program on the same system. - This should compile on almost any system with a C++ compiler. There are compiler switches in "define.h" to select some specific systems. For other systems you may have to make small modifications to the parts of the code. #define BORLAND 1 // Selects a win95/NT compiler if set to 1 // this should work with MSVC and others as // well #define DEC 0 // Set to 1 for certain DEC Unix systems, not // all will need it - some other unixes may // need this if there are errors in "book.cpp" #define UNIX 0 // Set to 1 for all Unix systems - I don't have much time to support the source code version, but please let me know if you successfully get this to compile on a system.