Versions from 2 to 4 were written by John Stanback. Version 5 was written by Chua Kong-Sian. Version 6 was written by Fabien Letouzey. Up: Known problems [ Contents ][ Index ]. The addition of Chess support lead to a change in internal-move representation for castling. This slightly affected the opening-book format. We recommend that you recompile books with this version. Several users reported engines losing on time.
The playing conditions always mixed playing on an Internet server with pondering. Since version 5. Then Fabien Letouzey developped Fruit, which proved to be a stronger chess engine and shaked the computer chess world. At some point in time, he kindly assigned copyright to FSF, which allowed us to make Fruit 2. The idea was to use Fruit 2.
This is particularly important since GNU Chess has been world-wide used for long. GNU Chess can be used in two modes: interactively using the command-line interface on a text console, and used as backend engine from a graphical frontend. Both cases rely on almost identical grammar. The former is described in GNU Chess help. UCI is described here:. Standalone PolyGlot can be used, along with Fruit, as chess engine for chess frontends, suchs as XBoard.
In that case, PolyGlot and Fruit run as two independent single-threaded processes. PolyGlot starts first, and it forks Fruit. PolyGlot tries to solve known problems with other adapters. For instance, it detects and reports draws by fifty-move rule, repetition, etc. PolyGlot 1. The main program contains the frontend and starts two addtional threads, one for the adapter, and another one for the engine. The three components comprise a chain, thus there are two links:.
The links are based on pipes. There is no need for additional synchronization mechanisms such as mutex. The changes in PolyGlot and Fruit are minimal, since they were already using the same mechanism to communicate with each other. Source code was placed under a single src in GNU Chess v5, as usual. Three additional directories have been created for GNU Chess v6, so the code is organized in four directories:.
Contains the main and a source file used to create the pipes that communicate the three modules: frontend, adapter and engine. Contains the frontend.
The code here is inherited from GNU Chess v5, with some modifications mainly in cmd. The sources in each src subdirectory are compiled as a static library. When link with the sources in top src , they result into the binary gnuchess. The module libraries are named after their respective directory name:. The source code of the frontend comes mainly from version 5.
However, in version 6. This change has been introduced to avoid compilation warnings in output. PolyGlot and Fruit have a common origin, which means that there is a lot of shared code.
The point is that the shared code is very similar but not identical, which would make hard an eventual unification. In order to avoid massive name clash, all the code has been wrapped in namespaces, one for the adapter, one for the engine. The frontend remains in the default namespace. Fruit was designed to help with the study of game-tree search algorithms, when applied to chess. It is now released as a chess engine, which is a somewhat different category of programs.
Therefore the source code contains entire files and also functions that are either not used by the engine, or could be replaced with a much simpler although somewhat less efficient equivalent. As a chess engine, Fruit combines a "robust" search algorithm with a "minimalist" evaluation function. The latter is not a design choice, and will hopefully change in the future. The following description is only a very incomplete description. Please consult the source code for an absolute definition.
The search algorithm was designed to accommodate with heavy forward-pruning eccentricities such as search inconsistencies. Fruit uses the 16x12 board. Although this structure is not very popular, it can be seen as simply combining 10x12 mailbox with 16x8 0x It is possible that Fruit uses bitboards for pawns in the future. The main search algorithm is a classical PVS with iterative deepening.
Search enhancements such as a transposition table and null-move pruning are also used see below. A few details in the PVS implementation are not-so-standard and are there to supposedly enhance the stability of the search like reducing the consequences of search inconsistencies.
As another example, I only allow null move when the static evaluation fails high i. Whether these features improve the strength of the engine is an open question. Fruit uses 4 probes and replaces the shallowest entry. Time stamping is used so that entries from previous searches are considered available for overwriting. In Fruit, a precondition to using null move is that the static eval fails high.
One of the consequences of this is that no two null moves can be played in a row this is because the evaluation is symmetrical. This is a usual condition but notice that in Fruit the null-move condition is "pure" independent of move paths. The fail-high condition was selected for other reasons however. Fruit is not fast in nodes per second given the little it is calculating.
Some "optimisations" could be undone in order to make the code shorter and more flexible. Starting on version 6. The Translation Project contributes message strings translated into other languages. During the installation of the operating system, the language to be used is selected. This selection is made system-wide. Typically, a command like this in bash will set German as the language to be used:. The purpose of this License is to make a manual, textbook, or other functional and useful document free in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially.
Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does.
But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein.
You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics. The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them.
If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections.
If the Document does not identify any Invariant Sections then there are none. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent.
An image format is not Transparent if used for any substantial amount of text. WinBoard 4. The Chess Lv. Fritz Chess 14 3. Scid 4. Chess Free Edition Brutal Chess 0. Your review for GNU Chess. Leave a review. This is embarrassing The 6. It can also be found on the GNU mirrors ; please use a mirror if possible. A brief summary is available by running gnuchess --help. Security reports that should not be made immediately public can be sent directly to the maintainer.
If there is no response to an urgent issue, you can escalate to the general security mailing list for advice. For information, please read How to help GNU. If you'd like to get involved, it's a good idea to join the discussion mailing list see above. We defend the rights of all software users. There are also other ways to contact the FSF.
0コメント