diff options
| author | svn2git <svn2git@FreeBSD.org> | 1994-05-01 08:00:00 +0000 |
|---|---|---|
| committer | svn2git <svn2git@FreeBSD.org> | 1994-05-01 08:00:00 +0000 |
| commit | a16f65c7d117419bd266c28a1901ef129a337569 (patch) | |
| tree | 2626602f66dc3551e7a7c7bc9ad763c3bc7ab40a /gnu/games/chess/DOCUMENTATION | |
| parent | 8503f4f13f77abf7adc8f7e329c6f9c1d52b6a20 (diff) | |
Release FreeBSD 1.1upstream/1.1.0_cvsrelease/1.1.0_cvs
This commit was manufactured to restore the state of the 1.1-RELEASE image.
Releases prior to 5.3-RELEASE are omitting the secure/ and crypto/ subdirs.
Diffstat (limited to 'gnu/games/chess/DOCUMENTATION')
| -rw-r--r-- | gnu/games/chess/DOCUMENTATION/ARTICLE | 66 | ||||
| -rw-r--r-- | gnu/games/chess/DOCUMENTATION/ARTICLE.2 | 123 | ||||
| -rw-r--r-- | gnu/games/chess/DOCUMENTATION/CHANGES | 362 | ||||
| -rw-r--r-- | gnu/games/chess/DOCUMENTATION/COPYING | 123 | ||||
| -rw-r--r-- | gnu/games/chess/DOCUMENTATION/GENERAL | 34 | ||||
| -rw-r--r-- | gnu/games/chess/DOCUMENTATION/HEURISTICS | 122 | ||||
| -rw-r--r-- | gnu/games/chess/DOCUMENTATION/MAN-PAGE | 161 |
7 files changed, 991 insertions, 0 deletions
diff --git a/gnu/games/chess/DOCUMENTATION/ARTICLE b/gnu/games/chess/DOCUMENTATION/ARTICLE new file mode 100644 index 000000000000..b2ab331d21d5 --- /dev/null +++ b/gnu/games/chess/DOCUMENTATION/ARTICLE @@ -0,0 +1,66 @@ +[This article was reproduced from a GNU Bulletin.] + + GNU Chess + by Stuart Cracraft + copyright 1987 Stuart Cracraft + + + GNU Chess is a communal chess program. Contributors donate their +time and effort in order to make it a stronger, better, sleeker program. +Contributions take many forms: interfaces to high-resolution displays, +opening book treatises, speedups of the underlying algorithms, additions +of extra heuristics. These contributions are then distributed to the +large user-base so that all may enjoy the fruits of our labor. The +original and continuing purpose of this project is to permanently end +the rampant hoarding of computer chess software that has been the +case for the past 20 years. + + Many people have contributed to GNU Chess. Their contributions have +improved the program from being a patzer (weak program) to being a +grandpatzer (decently strong program). In its growth since initial +release, GNU Chess has gone from approximately class D to expert +strength. It beats the Fidelity Excel commercial unit rather handily. + + GNU Chess's structure is a hybrid of the Shannon Type-A and +Type-B methods. It conducts a full-width search to a fixed-depth +and then continues with a quiescence search for many more ply. +This quiescence search helps the program find positions which +can be safely evaluated and which are not too turbulent. If +a terminal position is too turbulent, the evaluation will be +highly inaccurate. Additional searching by investigating series +of captures, checks, and other potentially imbalance-producing +moves is quite helpful. + + GNU Chess will sacrifice pieces in order to reach known winning +endings. Also, it uses a trade-down bonus to encourage the stronger +side to trade off certain types of pieces thus reaching a more +simplified and therefore ostensibly "clearer" position. + + GNU Chess has certain types of knowledge regarding easier endgames. +This allows it to play these endings somewhat better than might be +expected. + + GNU Chess has time heuristics that it uses to improve its handling +of time-controls and hasten its making of "obvious" moves. + + GNU Chess is interfaced to the SUN Windows and X Windows +display protocols and can display its pieces in elaborate format, +similar to chess diagrams. + + GNU Chess has an opening book which consists of many variations +from MCO (Modern Chess Openings). + + For comparison purposes, GNU Chess running on a VAX 8650 is +stronger than the famous Chess 4.5 running on a CDC 6400. + + We wish to acknowledge the contributions of the following +individuals: (in alphabetical order) Jim Aspnes, Wayne Christopher, +Steve Dougherty, David Goldberg, Richard Greenblatt, David Kittinger, +Richard Stallman, John Stanback, and Ken Thompson. + + Contact information: The author may be reached by a variety of +methods. Via U.S. mail: Stuart Cracraft, 5 Via Amistosa, Suite G, +Rancho Santa Margarita, Ca. 92688 USA. + By Internet: 'cracraft at wheaties.ai.mit.edu' +The author may also be contacted via the Free Software Foundation, Inc. +675 Massachusetts Ave.,Cambridge MA 02139. diff --git a/gnu/games/chess/DOCUMENTATION/ARTICLE.2 b/gnu/games/chess/DOCUMENTATION/ARTICLE.2 new file mode 100644 index 000000000000..031ae18f9e4b --- /dev/null +++ b/gnu/games/chess/DOCUMENTATION/ARTICLE.2 @@ -0,0 +1,123 @@ + + + GNU Chess: Experiences Learned + with Communal Sharing + by Stuart Cracraft + (and contributors to the GNU Project) + + +Limited sharing has characterized the computer chess community +for the past two decades. Occasional research articles give hints +and suggestions for useful features, but rarely reveal the real +details of the critically important advances. We will here +describe an effort underway (titled "GNU Chess") to create a more +open and friendly environment of sharing. + +GNU Chess is part of Project GNU, a large-scale effort in which +the philosophical goals are far-reaching. We will not go into any +great depth about these goals as they relate to the larger pro- +ject, because these are described elsewhere [1]. However, we will +mention the basic issues and the changes we hope to encourage. + +The start of the GNU Chess project was a natural result of the +experiences gleaned in writing a chess program. While the author +was at a progressive academic location [2], he was able to con- +ceive the idea of a communal chess program only after much heart- +ache. During the period of writing the initial version (which +has since undergone many improvements and whole revisions), it +became clear that the best features and most useful hints, the +very best of the heuristics, were hidden and difficult to find in +the literature. + +Sprinkled across many books, research papers, magazine articles, +accumulated in the community, during the past 25 years, there was +literally a void of true, empirical programs. Locating usable +programs was difficult. Many programs were the result of academic +work in "ivory towers", and hence were inaccessible to the common +man. Other programs were sequestered in research think-tanks. Na- +turally, developers of commercial programs carefully guarded +their source in order to protect their investment. On the other +hand, a few chess program source listings had actually been pub- +lished, but these were not really very strong, often written in a +non-general language, and frequently more pedantic than practi- +cal. + +The idea of a reasonably strong communal program solidified. +When we refer to a communal program, we do not regard this as +public-domain software. Rather, we refer to a program which is +under the shared authority of a number of individuals, the prin- +cipal contributors. These individuals have experienced and real- +ized the positive results of a sharing community and the rapid +improvements that come through contributing in such a community. +Further, these individuals devote time and energy to coordinating +the contributions of other individuals. While they exercise a +certain editorial right, this is usually not exercised arbitrari- +ly; instead, a discussion is often undertaken. + +Eventually, a working C program that played chess was available. +The coordinating institution for Project GNU [3], accepted our +suggestion of inclusion of a chess program in the GNU distribu- +tion. Initial distribution of GNU Chess commenced in October of +1986. Interest in the project increased rapidly. + +Contributions came in from many places and people. Interfaces to +X-windows and SUN-windows were donated, thus allowing very fancy +chess fonts on bit-mapped screens. Also, contributions involving +large portions of opening books such as MCO and collections of +master games were added to the distribution. Additionally, +tree-search modifications and heuristics were provided, and occa- +sionally even entire rewrites. + +The program advanced in strength by several USCF class intervals +during a period of less than one year. During this time, many +unusual features and enhancements were added to the program, usu- +ally under the coordination of two or more people, with one work- +ing in a distant-advisory capacity to the other. Frequently, gra- +duate students would give up significant time from their thesis +work to devote energy to contributing. Their corporate counter- +parts would often give up project time to make their donation. + +Contributors would often enter the project in a very forceful way +and then having made their contribution, learn the viability of +communal sharing once others had stepped in and contributed to +them, thus providing considerable reinforcement. Frequently, con- +tributors would then go into "hibernation" for a long period of +time, but most of them remained open to contributing and were +helpful when asked to reprogram their particular contribution in +a more recent version. + +GNU Chess has made great strides in relatively little time. It +has run on many different hardware architectures and has been +compiled by a number of C compilers [4]. A sampling of the com- +puters on which the program has run is: National 32032, Vax +11/750, 8550, 8600, 8650, Motorola 68020, CCI 5/32, CCI 6/32 +(tahoe), Cray XMP. + +It is our belief that GNU Chess will stimulate graduate research +in computer chess theory and practice. When students are able to +easily obtain a state-of-the-art program in order to test out +their ideas, they will no longer need to reinvent the wheel. The +students will be able to investigate their research areas much +more thoroughly, because they will spend more time on the specif- +ic research areas they are concerned about. Basically, GNU Chess +"frees up" time in order to get on to more fundamental issues. + +We also feel that as other researchers gain trust in the GNU +Chess project, they will be more likely to release their results +directly and rapidly, through journal articles, or directly to +the GNU project, and in fact become contributors and join the +present list [5]. At the very least, a communal, ever-growing +program will encourage the few "closeted" researchers to be some- +what more open in their approach to disseminating advances. + +In whatever form it takes, the progress toward elaboration of +machine chess is ongoing, and we hope that GNU chess will be +helpful to the community. Copies of GNU Chess source and "book", +as well as additional experimental code are available from the +Free Software Foundation [3] or the author [6]. + + +[1] The GNU Manifesto, Richard Stallman, Free Software Foundation, Inc. + +[2] University of Southern California, Information Sciences Institute. + diff --git a/gnu/games/chess/DOCUMENTATION/CHANGES b/gnu/games/chess/DOCUMENTATION/CHANGES new file mode 100644 index 000000000000..9866075ab8a8 --- /dev/null +++ b/gnu/games/chess/DOCUMENTATION/CHANGES @@ -0,0 +1,362 @@ + GNU CHESS HISTORY + (#include "../version.h") + +August 1, 1989 -- Jay Scott +He proofread the opening book and made +corrections. + +June 21, 1989 -- Hes @log-se.sv +He contributed new move generation routines (move.c move.h) to speedup +move generation and the overall program, by about 15-30% + +June 9, 1989 -- Tim Radzy (unet!nplab4!radz@ames.arc.nasa.gov) +He fixed a bug in xchess/board.c. In a post-game new-game situation, +castling wouldn't be permitted under circumstances. Tim made +it possible to castle again. + +May 12, 1989 -- Joe Garbarini (garbarini%kegger@circus.llnl.gov) +Recommended changes to documentation vis a vis chesstool usage. + +May 5, 1989 -- Jouko Holopainen (jhol@tolsun.oulu.fi) +Wrote code to support underpromotion. +Changed interface to accept ECO/Informator style moves. + +April 30, 1989 -- Various GNU contributors +setlinebuf() modification for xchess/chesstool. +check for zero division in time printout. + +January 17, 1989 -- Anders Thulin +Provided extensive addition to the opening book for his +favorite opening the Vienna Game. This was drawn from ECO. + +November 23, 1988 -- Stuart Cracraft +Installed new version of Xchess that is better debugged, works on +the next version of X. Thanks to Wayne Christopher and Arturo Perez. + +August 28, 1988 -- Stuart Cracraft +Removed a sacrifice line from the Giuoco Piano entry in the opening +book; the program didn't seem to like the positions it got from this line. + +December 30, 1987 -- John Stanback +Wrote a short blurb on the heuristics contained in GNU Chess. It resides +in the subdirectory DOCUMENTATION as the file HEURISTICS. + +December 17, 1987 -- John Stanback +Modified criteria for positional evaluation in quiescence search +to include positions in which the estimated score lies within +the alpha-beta window; fixed a bug in the king proximity to pawns heuristic; +fixed a bug involving passed pawn heuristics; + +December 16, 1987 -- Stuart Cracraft +Added automatic 'list' upon exit (both in display, non-display, and +chesstool mode); command-line setting of tournament time controls +bug fixed. + +December 14, 1987 -- John Stanback +GNU defeated the commercial product 'Fidelity Excellence' 5.5-4.5 in +a 10-game match. It was running at about 500 nodes per second (typical +of its speed on a VAX 8650) and this would indicate its strength +would be about USCF 1875-1900. + +December 4, 1987 -- John Stanback +Man page added. Command line arguments now specify regular clock +settings if so desired (useful for SUN players). Thinking +on opponent's time is now disabled by default. Estimated +rating is 1850 at 500 nodes per second. + +October 20, 1987 -- Stuart Cracraft +Fixed GNU/SUN interaction. Chesstool and its features now +seem to fully work. + +October 5, 1987 -- Ken Thompson +GNU beat Belle (actually drew due to a bug, but +Ken kept GNU playing through to the win) while +running on a Cray XMP-48. In this 3-1 time handicap game +Belle outsearched Cray GNU by 10-1 (even with the handicap). + +September 26, 1987 -- John Stanback at HP +Hash table functioning. Thinking on opponent's +time functioning. + +August 20, 1987 -- Mike Meyer at Berkeley +Mike ran GNU Chess on a Cray 1 supercomputer. +The system was very heavily loaded, so the +program was not as speedy as with the Cray below. + +August 16, 1987 -- David Goldberg at SUN +He added "chesstool" support so that this +version of GNU Chess can run under the +display manager "chesstool". + +August 15, 1987 -- John Stanback at HP +Hash tables, more heuristics, a modified +search which is more efficient. He also +discovered a bug in the piece-exchanger. This +would cause the program to exchange pieces suboptimally. +With this fix, the program should play much +more strongly. + +August 13, 1987 -- Ken Thompson at Bell Labs +Ken ran GNU Chess on a Cray XMP supercomputer + (among other processors). The program got + about 3000-4000 chess positions per second + which is comprable to today's fastest bit-slice + commercial machines. Also, he had GNU Chess + play two games against Belle. + +July 19, 1987 -- Jay Scott & John Stanback + Many positional heuristics have been added. + +July 18, 1987 -- Stuart Cracraft + Improvements have been made to the opening + book. It is mostly an MCO book, containing + major variations from many of the major openings + and particularly in-depth on Sicilian. + +May 11, 1987 -- John Stanback at HP + He donated his chess program, a fairly mature + and strong program. + +May 1, 1987 -- Stuart Cracraft + He added several bug fixes various people + had reported. He also changed makemove() so that + the calling syntax is makemove(movelist,index,board) + rather than makemove(move,board). Having the latter + tickled a bug in at least one manufacturer's C-compiler, + so rather than write fancy code, we simplified it. + +April 25, 1987-- Jim Aspnes at MIT +He added all sorts of useful capabilities, +including positional evaluation in the tree +search using a table-driven algorithm, +modifying transposition table code in order +to work properly, though it doesn't improve +speed too much, checkmates/stalemates detected +in the search, en passant captures allowed, +detect repeated positions, iterative deepening, +quicker quiescence search, tournament time controls, +sqattacked sped up by a factor of 4, compile-time +debugging options. + +January 2, 1987 -- Stuart Cracraft + He added a few more Tal games to the collection. + +January 2, 1987 -- Jim Aspnes at MIT + He contributed MCO variations for the Catalan, + Queen's Indian, and Reti openings. + +December 29, 1986 -- Jim Aspnes at MIT + He contributed all MCO variations of the Najdorf + to the opening book. He also contributed a LISP + macro (written in GNU Emacs Lisp) to convert + xchess game formats to GNU Chess opening book + format. + +December 14, 1986 -- Ken Thompson at Bell Labs + He contributed almost 200 games by Tal to + our collection of Tal-games, bringing the + total number of Tal positions in the book + to 10,692. Total book positions now 13,207. + These reside in bookin, bookin.bdg, bookin.tal. + Note that presently, only bookin and bookin.tal + can be used. The new Tal positions came in a + slightly different format, which we have chosen + to adopt as our standard format. All book + games in bookin and bookin.bdg will gradually + change into the new standard format. + +December 11, 1986 -- Stuart Cracraft + Added "averages" for node-count per move, + cpu per move, rate per move to list_history + and write_history. + New version of Xchess installed. + Started typing in Tal games into "bookin.tal". + Added "total book positions" printout to "book" + and "enter" statistics printout. + +December 10, 1986 -- Stuart Cracraft + Implemented aspiration search in normal + alpha-beta search. Speedups of 3% to 40% + have been noticed in most positions. + Occasionally a slower search will result, + but it is thought these are worth the + usual speedups. + +December 9, 1986 -- Stuart Cracraft + Fixed minor bug in write_history() + Added another Tal game, 2nd game of 1st world + championship match with Botvinnik, a Benoni. + +December 9, 1986 -- Stuart Cracraft + Enhanced parallelism. All parallel processors + now communicate via a shared data file and + are kept running (in idle loops watching the + shared data file). This saves us a few seconds + on each move since the 'rsh' need not be invoked + more than once (at the beginning). Since the + shared data file is now implemented, we will + next work towards a "parallel anarchy" in which + any processor can use any other processor in + order to reduce its search. The current scheme + with the program being only as fast as its slowest + processor, is quite inefficient. + +December 1, 1986 -- Jim Aspnes at MIT + Added a couple of Master games from + Modern Chess Openings 12 (a Fischer game, + and a Matanovic game). + +November 30, 1986 -- Stuart Cracraft + Added parallelism. Can now handle multiple + processors (sharing same disk). Later we will + add the capability to use processors not sharing + the same disk. Modified README and MAN-PAGE. + +November 26, 1986 -- Stuart Cracraft + Fixed a few bugs in book-mailing mechanism. + Fixed a bug regarding situations where only + one move is available. + Fixed a bug in read_history() that caused + Black queenside castles to be mishandled. + +November 25, 1986 -- Stuart Cracraft + Added two pawn heuristics. Reward pawns moving into + a phalanx of pawns. A phalanx is two or more + horizontally-connected pawns. Likewise, penalize + pawns leaving a phalanx of pawns. The penalty for + leaving is a little more than the reward for + entering. + +November 24, 1986 -- Stuart Cracraft + A user reported an unbelievable bug. Investigation + of this bug led to the discovery that GNU Chess was + not picking the move judged best by the tree search + in all cases. This resulted in the bug showing + itself which further showed that the program was + selecting an inferior move. This may result in an + improvement to the program's play. + +November 24, 1986 -- Stuart Cracraft + Added two heuristics. Penalize king moves if + the king hasn't castled yet. Also, penalize pawn + moves which produce doubled pawns. Should + probably have something for isolated pawns + too. + +November 23, 1986 -- Wayne Christopher at Berkeley + New version of X chess display front-end. + Fixed bugs include multiple pieces, runs + on SUNS & Bobcats, loads saved games. + +November 23, 1986 -- Stuart Cracraft + Cleaned up some minor bugs regarding history. + Added "Illegal command" error message at Wayne's + request. + +November 22, 1986 -- David Goldberg at SUN Microsystems + He complained that GNU Chess was memory-hungry. + A few minor modifications to hash.c reduced + uninitialized data space 87% and text space + 12%. This should make it easier for GNU Chess + to run on small computers. + +November 22, 1986 -- Stuart Cracraft + "read" command was working, but needed + additional tweaking so that history + array would be printed by list_history(). + +November 19, 1986 -- Stuart Cracraft + Added "read" command which reads a history + file (game listing) and restores the board + to as if the person was still playing that. + particular game. Generally cleaned up + history mechanism, made it more orthogonal. + Revised README. Added doc to MAN-PAGE. + +November 16, 1986 -- Stuart Cracraft + More opening book bugs found and fixed. + Added capability to accept abbreviated-algebraic notation + for entering "book" games from files. + Added approximately 2500 new positions to + opening book from games involving the + opening called Blackmar-Diemer Gambit, + a hoary line developed by Diemer in + Germany years ago. + +November 15, 1986 -- Wayne Christopher at Berkeley + He modified the move generator, resulting in + a 28% speedup. + +November 14, 1986 -- Stuart Cracraft + He documented a lot of the GNU Chess modules + with brief comments for each function. More + extensive internal documentation may go in + later. + +November 14, 1986 -- Wayne Christopher at Berkeley + He created the Xchess interface for + GNU Chess to have windowing with X windows. + +November 14, 1986 -- Stuart Cracraft + He added a "randomization" feature to + the opening book. This will cause the + program to select randomly from alternate + variations whenever -DBEST is removed + from Makefile's CFLAGS. If this is not + removed, the opening play selects the + first move found in the book as it appears + "in order" in the human-readable book. + +November 14, 1986 -- David Goldberg at SUN Microsystems + He responded to a query about dbm(3) which + eventually resulted in the fixing of a subtle + bug in the book code which was causing the + program to sometimes hash to the incorrect + address and thereby produce a book move which + didn't even exist in the book. Thanks David! + +November 14, 1986 -- Stuart Cracraft + He added the "oboard" routine in util.c. This + is the reverse of the already extant "iboard" + (same module). These two routines translate + between GNU Chess internal format and + Forsythe notation. + +November 10, 1986 -- Stuart Cracraft + He added the "enter" command. This causes + the current game to be entered in the book. + Then, GNU Chess tries to mail this new entry + to the book maintainers (for inclusion in + the master copy of the book). + +November 9, 1986 -- Stuart Cracraft +He added code for an opening book. MAN-PAGE +and README were modified accordingly. + +November 8, 1986 -- Stuart Cracraft +Checks and mates are now noticed at ply-1. +This is a more complete fix to the Oct 31 fix. + +October 31, 1986 -- Stuart Cracraft +First attempt at fix to bug which causes +program to check human's king when program +itself is in check. + +October 31, 1986 -- Mly at MIT +Reported a bug which caused program to crash +when an illegal human move was played. Fixed. +Also, program was unable to play as White. Fixed. + +October 22, 1986 -- Stuart Cracraft +Pps now rewards moves which liberate bishops. + +October 19, 1986 -- Stuart Cracraft +Added bitmapper routines to distribution. +Added version notice. + +October 19, 1986 -- David Goldberg at SUN Microsystems +Interfaced GNU Chess with SUN's chesstool. + +October 18, 1986 -- Initial release date. + + diff --git a/gnu/games/chess/DOCUMENTATION/COPYING b/gnu/games/chess/DOCUMENTATION/COPYING new file mode 100644 index 000000000000..17847b71307f --- /dev/null +++ b/gnu/games/chess/DOCUMENTATION/COPYING @@ -0,0 +1,123 @@ + GNU CHESS GENERAL PUBLIC LICENSE + + Copyright (C) 1986,1987 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license, but changing it is not allowed. + + The license agreements of most software companies keep you at the +mercy of those companies. By contrast, our general public license is +intended to give everyone the right to share GNU Chess. To make +sure that you get the rights we want you to have, we need to make +restrictions that forbid anyone to deny you these rights or to ask you +to surrender the rights. Hence this license agreement. + + Specifically, we want to make sure that you have the right to give +away copies of GNU Chess, that you receive source code or else can get it +if you want it, that you can change GNU Chess or use pieces of it in new +free programs, and that you know you can do these things. + + To make sure that everyone has such rights, we have to forbid you to +deprive anyone else of these rights. For example, if you distribute +copies of GNU Chess, you must give the recipients all the rights that you +have. You must make sure that they, too, receive or can get the +source code. And you must tell them their rights. + + Also, for our own protection, we must make certain that everyone +finds out that there is no warranty for GNU Chess. If GNU Chess is +modified by someone else and passed on, we want its recipients to know +that what they have is not what we distributed, so that any problems +introduced by others will not reflect on our reputation. + + Therefore the Free Software Foundation, Inc. makes the following +terms which say what you must do to be allowed to distribute or change +GNU Chess. + + COPYING POLICIES + + 1. You may copy and distribute verbatim copies of GNU Chess source +code as you receive it, in any medium, provided that you conspicuously +and appropriately publish on each file a valid copyright notice +"Copyright (C) 1986,1987 Free Software Foundation, Inc.", containing the +year of last change for the file in question; keep intact the notices +on all files that refer to this License Agreement and to the absence +of any warranty; and give any other recipients of the GNU Chess +program a copy of this License Agreement along with the program. + + 2. You may modify your copy or copies of GNU Chess source code or +any portion of it, and copy and distribute such modifications under +the terms of Paragraph 1 above, provided that you also do the following: + + a) cause the modified files to carry prominent notices stating + who last changed such files and the date of any change; and + + b) cause the whole of any work that you distribute or publish, + that in whole or in part contains or is a derivative of GNU Chess + or any part thereof, to be freely distributed + and licensed to all third parties on terms identical to those + contained in this License Agreement (except that you may choose + to grant more extensive warranty protection to third parties, + at your option). + + c) if the modified program serves as a text editor, cause it + when started running in the simplest and usual way, to print + an announcement including a valid copyright notice ("Copyright + (C)", the year of authorship, and all copyright owners' names), + saying that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of + this License Agreement. + + 3. You may copy and distribute GNU Chess or any portion of it in +compiled, executable or object code form under the terms of Paragraphs +1 and 2 above provided that you do the following: + + a) cause each such copy of GNU Chess to be accompanied by the + corresponding machine-readable source code; or + + b) cause each such copy of GNU Chess to be accompanied by a + written offer, with no time limit, to give any third party + free (except for a nominal shipping charge) machine readable + copy of the corresponding source code; or + + c) in the case of a recipient of GNU Chess in compiled, executable + or object code form (without the corresponding source code) you + shall cause copies you distribute to be accompanied by a copy + of the written offer of source code which you received along + with the copy of GNU Chess. + + 4. You may not copy, sublicense, distribute or transfer GNU Chess +except as expressly provided under this License Agreement. Any attempt +otherwise to copy, sublicense, distribute or transfer GNU Chess is void and +your rights to use GNU Chess under this License agreement shall be +automatically terminated. However, parties who have received computer +software programs from you with this License Agreement will not have +their licenses terminated so long as such parties remain in full compliance. + +Your comments and suggestions about our licensing policies and our +software are welcome! Please contact the Free Software Foundation, Inc., +1000 Mass Ave, Cambridge, MA 02138, or call (617) 876-3296. + + NO WARRANTY + + BECAUSE GNU CHESS IS LICENSED FREE OF CHARGE, WE PROVIDE ABSOLUTELY +NO WARRANTY, TO THE EXTENT PERMITTED BY APPLICABLE STATE LAW. EXCEPT +WHEN OTHERWISE STATED IN WRITING, FREE SOFTWARE FOUNDATION, INC, +AND/OR OTHER PARTIES PROVIDE GNU CHESS "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +PROGRAM IS WITH YOU. SHOULD THE GNU CHESS PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW WILL FREE SOFTWARE +FOUNDATION, INC., AND/OR ANY OTHER PARTY WHO MAY MODIFY AND +REDISTRIBUTE GNU CHESS AS PERMITTED ABOVE, BE LIABLE TO YOU FOR +DAMAGES, INCLUDING ANY LOST PROFITS, LOST MONIES, OR OTHER SPECIAL, +INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH PROGRAMS NOT DISTRIBUTED BY +FREE SOFTWARE FOUNDATION, INC.) THE PROGRAM, EVEN IF YOU HAVE BEEN +ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR ANY CLAIM BY ANY +OTHER PARTY. +====================================================================== diff --git a/gnu/games/chess/DOCUMENTATION/GENERAL b/gnu/games/chess/DOCUMENTATION/GENERAL new file mode 100644 index 000000000000..aafb7ed335e3 --- /dev/null +++ b/gnu/games/chess/DOCUMENTATION/GENERAL @@ -0,0 +1,34 @@ + GNU Chess + +Copyright (C) 1987 Stuart Cracraft + (Copying permission notice at the end.) + +GNU Chess is your program (as long as you follow the copyright and +licensing rules listed in the file COPYING). Your contributioinspire current and future software +developers. + +This document +------------- +This document is not meant to be a an introduction to computer chess. +The following books are excellent introductions and treatises. +They are listed in order of difficulty: + + Computer Chess (2nd edition), by David Welsh and Boris Bazcynski + The Joy of Computer Chess, by David Levy + Chess Skill in Man and Machine (2nd edition), by Peter Frey + + +Current Distribution +-------------------- +The most recent distribution of GNU Chess contains the following +main-level files and directories: + + Filename Purpose + ------------------------------------------------------ + README Pointer to main README below. + gnuchess.c Most recent version of GNU Chess + nondsp.c Non-display interface, and chesstool/xchess interface + uxdsp.c Unix (curses) display interface + ansidsp.c ANSI display interface + gnuchess.book Most recent version of opening book + diff --git a/gnu/games/chess/DOCUMENTATION/HEURISTICS b/gnu/games/chess/DOCUMENTATION/HEURISTICS new file mode 100644 index 000000000000..254b34472abe --- /dev/null +++ b/gnu/games/chess/DOCUMENTATION/HEURISTICS @@ -0,0 +1,122 @@ +This file contains a description of GNU's heuristics. + Copyright (C) 1986, 1987 Free Software Foundation, Inc. + +This file is part of CHESS. + +CHESS is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY. No author or distributor +accepts responsibility to anyone for the consequences of using it +or for whether it serves any particular purpose or works at all, +unless he says so in writing. Refer to the CHESS General Public +License for full details. + +Everyone is granted permission to copy, modify and redistribute +CHESS, but only under the conditions described in the +CHESS General Public License. A copy of this license is +supposed to have been given to you along with CHESS so you +can know your rights and responsibilities. It should be in a +file named COPYING. Among other things, the copyright notice +and this notice must be preserved on all copies. */ + + -- requested by main author +Heuristic descriptions for CHESS. + +Revision: 12-16-87 + +Copyright (c) 1987 by John Stanback + + Here is a brief description of the heuristics used in the positional + evaluator of the GNU Chess program. Many heuristics are functions of the + stage of the game which is based on the total non-pawn material remaining + for both sides. + + +PAWNS + The material value of a pawn is 100 points. Isolated pawns get a + penalty depending on which file they occupy: + (12,14,16,20,20,16,14,12) for files (a..h). + Doubled pawns (which are not also isolated) get a penalty of 12 + points. Backward pawns (defined simply as not being defended by a + pawn with the square in front also not defended by a a pawn) are + penalized 6 points. A 4 point penalty is also invoked for each attack + by the opponent to a backward pawn and for a backward pawn on a + half-open file. Pawn Advancement in the centre is given a bonus of + about 4 points per rank in the opening increasing to about 8 points + per rank in the ending. Advancement on the edges is given a lower + bonus. Pawns on the e and d files and on the 2nd rank are given a 10 + point penalty. An additional penalty of 15 points is invoked if these + pawns are also blocked. Pawns within 2 squares of the king are given + a 10 point bonus. Passed pawns are given a bonus for increasing rank + which is a function of stage of the game and of whether the opponent + blocks or attacks one or more squares in front of the pawn or if the + opponents king is in the square of the pawn. This bonus ranges from + about 15 points for a pawn on the second rank up to about 300 points + for a passed pawn on the 7th rank which can't be stopped from + queening. + + +KNIGHTS + The material value of a knight is 330 points. The main heuristic for + knights is a bonus for proximity to the centre. This varies from 0 + points in the corners to 30 points in the centre. Knights are also + given a bonus for being within 2 squares of each enemy piece. This + bonus is a function of the stage of the game, equalling 4 points in + the end game. A penalty of 1 point per square is given for distance + from either king. A bonus of up to 8 points (depends on stage) is + given for knights which can't be driven away by enemy pawns. + + +BISHOPS + The material value of a bishop is 330 points. Bishops are given a + bonus as material falls off the board equalling 10 points in the end + game. Bishops get a bonus for mobility and Xray mobility thru pieces + but not pawns. This bonus ranges from -4 points for a totally blocked + bishop up to 18 points for a bishop attacking 12 or more squares. + Xray attacks on an enemy R,Q,K or any undefended piece are given an 8 + point bonus. Bishops are given a bonus of 14 points if they lie on + the edge of the board up to 22 points if the lie in the centre. A + bishop is given a bonus of up to 5 points for each attack to a square + adjacent to the enemy king. + + +ROOKS + The material value of a rook is 520 points. Rook mobility is handled + similiarly to bishops with a bonus of 0 points if blocked up to 20 + points if attacking 12 squares or more. A bonus of 8 points for Xray + attacks is handled as it is for bishops. Rooks are given a bonus of + 10 points for occupying a file with no friendly pawns and a bonus of + 4 points if no enemy pawns lie on that file. After the opening Rooks + are penalized slightly depending on "taxicab" distance to the enemy + king. + + +QUEENS + The material value of a queen is 980 points. The only heuristic for a + queen is that after the opening it is penalized slightly for + "taxicab" distance to the enemy king. + + +KINGS + Kings are given a penalty for proximity to the centre in the opening + and a bonus for proximity to the centre in the endgame. The penalty + is about 24 points for being in the centre in the opening with a + bonus of about 36 points for being in the centre in the endgame. + Kings are penalized for lying on an open or half-open file or if the + adjacent file closest to the corner is open or half-open. This + penalty is up to 23 points in the opening and goes to zero in the end + game. The King is penalized up to 8 points if there are no pawns + immediately adjacent. A penalty is invoked depending on the number of + "safe" checks available by the opponent. This penalty ranges from 6 + points for one such check to 50 points for 4 or more. Depending on + game stage, Kings are given up to 10 points for castling and a + penalty of up to 40 points for moving before castling. + + +SPECIAL + If more than one piece is "hung" (attacked and not defended or + attacked by an enemy piece of lower value) an extra penalty of 10 + points is invoked for that side and the search may be extended one + ply. Pinned or trapped pieces are treated similarly. A special mating + routine is used if one side has only a king and the other has mating + material. + diff --git a/gnu/games/chess/DOCUMENTATION/MAN-PAGE b/gnu/games/chess/DOCUMENTATION/MAN-PAGE new file mode 100644 index 000000000000..bbf0aa4abf98 --- /dev/null +++ b/gnu/games/chess/DOCUMENTATION/MAN-PAGE @@ -0,0 +1,161 @@ +.TH Chess GNU +.SH NAME +Chess \- GNU Chess +.SH SYNOPSIS +.B Chess +[ +.B arg1 arg2 +] +.SH DESCRIPTION +.I Chess +plays a game of chess against the user or it plays against itself. +.PP +.I Chess +has a simple alpha-numeric board display or it can be compiled for +use with the CHESSTOOL program on a SUN workstation. +The program gets its opening moves from the file gnuchess.book which +should be located in the same directory as gnuchess. +To invoke the prgram, type 'gnuchess' or type 'chesstool gnuchess' +on a SUN workstation where 'CHESSTOOL' is installed. +The 'gnuchess' command can be followed by up to 2 command line arguments. +If one argument is given it determines the programs search time in +seconds. If two arguments are given, they will be used to set tournament +time controls with the first argument being the number of moves and the second +being the total clock time in minutes. Thus, entering 'chess 60 5' will set +the clocks for 5 minutes (300 seconds) for the first 60 moves. +If no argument is given the program will prompt the user for level of +play. +For use with CHESSTOOL, see the documentation on that program. +.PP +Once +.I Chess +is invoked, the program will display the board and prompt the user +for a move. To enter a move, use the notation 'e2e4' where the first +letter-number pair indicates the origination square +and the second letter-number pair indicates the destination square. +An alternative is to use the notation 'nf3' where +the first letter indicates the piece type (p,n,b,r,q,k). +To castle, type the origin and destination squares +of the king just as you would do for a regular move, or type +"o-o" for kingside castling and "o-o-o" for queenside. +.SH COMMANDS +.PP +In addition to legal moves, the following commands are available as responses. +.PP +.I beep +-- causes the program to beep after each move. +.PP +.I bd +-- updates the current board position on the display. +.PP +.I book +-- turns off use of the opening library. +.PP +.I both +-- causes the computer to play both sides of a chess game. +.PP +.I black +-- causes the computer to take the black pieces with the move +and begin searching. +.PP +.I level +-- allows the user to set time controls such as +60 moves in 5 minutes etc. In tournament mode, the program will +vary the time it takes for each +move depending on the situation. If easy mode is disabled (using +the 'easy' command), the program +will often respond with its move immediately, saving time on +its clock for use later on. +.PP +.I depth +-- allows the user to change the +search depth of the program. The maximum depth is 29 ply. +Normally the depth is set to 29 and the computer terminates +its search based on elapsed time rather than depth. +Using the depth command allows setting depth to say +4 ply and setting response time to a large number such as +9999 seconds. The program will then search until all moves +have been examined to a depth of 4 ply (with extensions up +to 11 additional ply for sequences of checks and captures). +.PP +.I easy +-- toggles easy mode (thinking on opponents time) +on and off. The default is easy mode ON. If easy mode is disabled, +the user must enter a 'break' or '^C' to get the programs +attention before entering each move. +.PP +.I edit +-- allows the user to set up a board position. +In this mode, the '#' command will clear the board, the 'c' +command will toggle piece color, and the '.' command will exit +setup mode. Pieces are entered by typing a letter (p,n,b,r,q,k) for +the piece followed by the coordinate. For example "pb3" would +place a pawn on square b3. +.PP +.I force +-- allows the user to enter moves for both +sides. To get the program to play after a sequence of moves +has been entered use the 'white' or 'black' commands. +.PP +.I get +-- retrieves a game from disk. The program will +prompt the user for a file name. +.PP +.I help +-- displays a short description of the commands. +.PP +.I hint +-- causes the program to supply the user with +its predicted move. +.PP +.I list +-- writes the game moves and some statistics +on search depth, nodes, and time to the file 'chess.lst'. +.PP +.I new +-- starts a new game. +.PP +.I post +-- causes the program to display the principle +variation and the score during the search. A score of +100 is equivalent to a 1 pawn advantage for the computer. +.PP +.I random +-- causes the program to randomize its move +selection slightly. +.PP +.I reverse +-- causes the board display to be reversed. That +is, the white pieces will now appear at the top of the board. +.PP +.I quit +-- exits the game. +.PP +.I save +-- saves a game to disk. The program will prompt +the user for a file name. +.PP +.I switch +-- causes the program to switch places with +the opponent and begin searching. +.PP +.I undo +-- undoes the last move whether it was the computer's +or the human's. You may also type "remove". This is equivalent +to two "undo's" (e.g. retract one move for each side). +.PP +.I white +-- causes the computer to take the white pieces +with the move and begin searching. +.SH BUGS +.PP +Pawn promotion to pieces other than a queen is not allowed. +En-Passant does not work properly with CHESSTOOOL. +The transposition table may not work properly in some +positions so the default is to turn this off. +.fi +.SH SEE ALSO +.nf +chesstool(6) +.fi + |
