******************************************************************** ** ** ** Chess 2.0 - Copyright (c) 1989 A.H.W. Kaufmann ** ** ** ******************************************************************** REQUIRED FILES/DIRECTORY ======================== Chess Chess.Doc Chess.Openings Chess.Pieces Chess.Colours Chess.info Games/???? SIMPLE INSTRUCTIONS =================== Format a floppy named "Chess" and copy these files to that floppy making sure that the directory Games is created OR copy the files to any directory and make that your current directory by using the CD command. Now you can issue the command "run Chess" from the CLI or simply click on the Chess Icon if you are in the WorkBench. To move the pieces - point and push the left mouse button. ( To castle, move the king the two spaces.) To find out more use the right mouse button to bring up the menus or finish reading this file. LISCENCING AND DISTRIBUTION =========================== This program may be distributed free of charge, provided that no extra restrictions are placed on it. Nominal charges for copying or on-line services are permitted provided that they are only for those services. No payment is required for using this program but you should feel yourself obligated to send in bug reports. OPTIONALLY, if you enjoy the program I would not mind getting getting your comments and suggestions for future enhancements. Alfred H.W. Kaufmann 124 Silversprings Rise N.W., Calgary, Alberta Canada T3B 3Z6 CREDITS AND THANKS ================== John Stanback: For the Chess playing program. Bob Leivian: For originally porting it to the Amiga Peter da Silva ) Matt Dillon ) Jeff Lydiat ) For the file requester Jay Miner ) R.J. Mical ) Bruce Dawson ) John Russell ) Mike Ballantyne ) For the colour requester R. French ) R.J. Mical ) Fred Fish: For distributing great programs and utilities. Lattice Inc: For giving it the good old college try with their C5.02 and CodePRobe Commodore-Amiga: For providing a great machine Special Raspberries =================== Lattice Inc.: For their relentless research in genetic engineering, producing newer and better bugs. Commodore-Amiga: For providing a buggy SETPATCH ********************************** * * * The Nitty/Gritty Details * * * ********************************** The Files ========= Chess The game. Chess.info The chess game icon which may need work, I'm not really an artist. Chess.Doc This file that you are now reading. Chess.Pieces This file contains the images for the chess pieces that are read in each time. The file also contains sufficient information to enable you to change them. If you don't like them you can get out some graph paper and design your own. Chess.Opening These are some standard book openings that are read in at startup. You can change them to whatever you want. Presently you are limited to 80 different book openings and you must ensure that the moves start in column 1 and 7. Chess.Colours This file determines the colours. You can change this file from within the chess playing program to suit your own tastes. Games This is a DIRECTORY that is automatically searched for games that you want to save or load. Presently there should be a few files in it that you may load from the chess program. The games starting with 'B' means that black should move first and the games starting with 'W' means white should move first. For best results set the timer to about 1800 seconds. The Menus ========= Load Game This will bring up a requester allowing --------- you to chose the game you want loaded. When you have specified the game, place the pointer or the accept gadget and press the left mouse button. Save Game This will bring up the same requester --------- but will allow you to specify a file to save the current game. Set Board This allows you to set up a chess board --------- however you want. The requester includes a help gadget which will explain how you set up the board. When done, place the pointer over the OK gadget and press the left mouse button. List Moves This will print the moves to the window ---------- or bring up the standard requestor to allow you to specify a file. Colours This brings up a colour requester which ------- will allow you to setup the colours to your own preferences. To make them permanent, place the pointer over the save gadget and press the left mouse button. Read Docs Will allow you to read this file or it --------- will produce a background task to send this file to the printer. Quit This or the close gadget to end a game. ---- If you are in the middle of a game you may consider saving it first! Switch Sides If you were white you are now black and ------------ if you were black you are now white. Reverse Board Reverses the board for you. ------------- Set Time Limit Brings up a requestor allowing you to -------------- set the response time. Use the backspace key to change it to whatever you want. Skip Move If you have switched sides you may want --------- to do this. Undo Move Undoes the last move if possible, if not --------- use the set board menu. Hint Obvious ---- Credits Just for showing. ------- The Game from a Usenet message written by John Stanback ======== of HP, Colorado Integrated Circuits Div., Loveland, CO. The program plays a fairly respectable game of chess, although it is not competetive with a state-of-the art commercial program. The search rate is typically 100-300 nodes/sec. on an HP Vectra (8 Mhz. 286) and about 300-900 nodes/sec. on an HP 350 (25 Mhz. 68020). I am interested to find out what is achieved on other machines. I would also be interested in any comments on playing strength, weaknesses or bugs in the program, and suggested improvements in the algorithm. Here are a few comments on the program: 1. Opening Library I'm a terrible chess player and don't know anything about openings. I copied 70-80 random lines of play from MCO into the file chess.opn. I think there are a few mistakes in the translation. If anyone generates a better library please let me know. 2. Positional Heuristics I think that improvement in this area would help the program quite a bit. In most situations the computer cannot do anything forceful and the choice of a move is based on positional aspects. I haven't spent a lot of time on the heuristics and many times the program has no idea of what is happening and how to proceed. Perhaps optimizing the values of the existing heuristics would help, but to get a major improvement I think more chess knowledge will be necessary. 3. Search Algorithm This program uses a full-width alpha-beta searching technique with depth extensions on checks, check evasions, pawn promotion threats and threats to multiple pieces. Capture sequences are handled by a separate search routine. I imagine that much more efficient search routines exist, and would be interested to hear of any. Refinements of the search extension heuristics (similar to the extensions for pawn promotion threats) could have a major effect on the programs ability. 4. Move Generation There are probably better ways to do this, but they would likely change the data structure drastically and necessitate a complete re-write. Maybe some good hacks would speed things up, the ataks function would be the best place to start. Future Enhancements =================== If there is enough interest in this chess player I would like to speed up the chess player. This could be produced fairly easily by reducing the large number of automatic variables and arrays, by using registered parameters for subroutine calls and entry points and by removing the stack checking code. Also I would like to revise the setboard function to make it point and click instead of having to key in "e2wp", etc. Bugs ==== None known of "at the present time". I am using a new compiler, Lattice C 5.02 and have already hacked around some problems, there may be more! Lets have your suggestions ! ****************************