Make your own free website on

RChess 2.2.2

* Fills a market gap, by being easily beaten at its lower levels. Unkind people have suggested that this feature applies at the higher levels too.
* Usually beats its programmer on level 4, often on level 3, and occasionally on level 2.
* Is given away free, gratis, without charge, and for nothing. Nor are you required to pay for it.
* Examines up to 1500 moves per second on LCIII; up to 3600 per second on Quadra 650. The natural awe with which naive people regard these numbers should be tempered by the fact that most of the moves examined are stupid ones that no human player would contemplate at all. Also, internationally acclaimed chess computers examine 300000+ moves per second.
* Is written in FutureBasic II, with many of the search routines in assembly language.
* Has received perceptive critical comment: "It plays chess as though it was playing draughts".

* Minimum memory requirement (as set in the Finder's Get Info window) is about 720K. Memory allocated in excess of this is used for the transposition table to increase speed of searching. An allocation of at least 1.8 MB is recommended.
* Move pieces either by clicking on the piece then on the destination, or by dragging the piece to its destination.
* The 'Score' displayed at upper right after each move is a crude indicator of how well or poorly RChess thinks it is doing. The score is dictated mainly by material balance, with conventional piece values: pawn=100, knight=324, bishop=348, rook=500, queen=900.
* By default RChess consults a small library of opening moves. If a match is found with the current position it plays the stored 'book' move immediately. If there is more than one book move, RChess picks one at random. As will quickly become clear to the informed observer, the intention behind this feature is not to secure an advantage by encyclopaedic knowledge of openings, but merely to provide felicitous variation in the openings played.
* An inconspicuous mini-menu to the right of the Play menu contains two commands: "Hint" and "Move now".
* The command "Modify board position" in the Play menu permits rearrangement of pieces. After rearrangement, select "Continue play" to accept the new piece placings, or "Revert board position" to return to the original position.
* The commands "White to play and mate" and "Black to play and mate" in the Play menu put RChess into an efficient mate-problem-solving mode which will find a mate (if one exists in 10 moves or fewer). Exit from this mode by selecting "New game" from the File menu, or "Move now" from the mini-menu.
* RChess can run in the background, so that you may work with another application while RChess continues to think about its move.

Angry bug reports (in English please) or extravagant praise (in any language) may be directed to:-

Robert Purves
Pharmacology Department
Medical School
University of Otago
PO Box 913
New Zealand

Version history
* <=1.15 Various bug-ridden horrors, the earlier of which could not underpromote or play captures en passant. However the later versions could sometimes beat me, without having to be set at an unbearably slow level.

* 2.0 Move search routines re-written: transposition table; iterative deepening of search; "obvious" moves made quickly; deeper searching in endgame (usually able to mate with KBN vs K on level 3). Mini-menu with "Hint" and "Move now". Mate-seeking mode for problem solving.
* 2.0.1 & 2.0.2 Bug fixes.
* 2.1 Changed to FutureBasic II compiler. New assembler routines for shorter, faster code. No longer runs on 68000 machines (Plus, SE, etc).
* 2.1.1 Minor bug fixes, affecting positional evaluation. Fixed bug affecting ability to mate with KBN vs K.
* 2.1.2 & 2.1.3 Bug fixes.

* 2.2 Improved use of transposition table and pawn score hash table. Revised heuristics (rules-of-thumb) for positional scoring. Less noticeably hopeless in K & P endings. More sounds added, along with a much-requested menu item allowing sound to be turned off (the default). Added Fixed time mode.
* 2.2.1 Can now run as a background application. Fixed bug causing saved game with checkmate to crash on opening.
* 2.2.2 Bug fixes

Pointless technical information
* Many chess programs make extensive use of 64-bit structures known as bit-boards. A routine in RChess, named NextBit, has the job of locating, and returning in sequence, bits that are set in a bit-board. On a Quadra 650, NextBit is invoked about 70000 times per second during a deep search. A related routine, KountBits, is invoked about 10000 times per second.
* RChess's raw move generator is named GetEveryMove and takes, on average, 300 microseconds to return a list of (typically) 35 moves, on a Quadra 650. The moves are partially presorted, with pawn promotions and favourable captures, if any, at the head of the list.

Notes on the levels
* The named (numbered) levels give similar standard of play on different Macintosh models, regardless of the computer's speed. The move search is slow on a slow computer and fast on a fast computer.
* The four learner levels (at the top of the Level menu) make direct use of some primitive move-selection routines. These are routines that RChess can call upon for quick pre-sorting of moves during a full, high level search. If RChess is losing heavily (or, improbably, winning heavily) it switches internally to the next higher level. Also, the list of moves is scanned for an immediate mate (by RChess of the opponent), and, if one is found, that move is selected regardless of the playing level. When playing at a learner level, RChess has no 'look-ahead' and does not even notice that a move would result in mate on its opponent's next move.
* At level -3, RChess makes the first move returned by the raw move generator, with no "look-ahead" or examination of the consequences. The raw move generator proposes a favourable capture if one is available, or will shift a threatened piece, but otherwise shows no intelligence at all.
* At level -2, all possible moves are generated and tried, and are then scored on the basis of a static analysis ("If I take your knight, you'll take my queen..."). The supposed best move is then used. Static analysis succeeds in predicting the outcome of simple capture/recapture sequences and of pawn promotion, and RChess can therefore avoid the rapid loss of its pieces, despite playing moves that are, positionally, without merit.
* Level -1 is like level -2, except that positional factors ("I'm attacking lots of centre squares", "Your rooks are doubled on the same file", "My knight is pinned against my king") are included in the score.
* Level 0 is like level -1 except that a dynamic capture analysis is done, so that checks and discovered attacks occurring during the capture/recapture sequence become known and are scored more accurately.
* On level 1 and above, RChess plays increasingly sensible moves, beyond the learner standard of play. Look-ahead is obtained by an iteratively deepened full-width search with alpha/beta cutoffs. In the opening, the maximum depth of the full-width search is normally equal to (1 + the level) plies. Captures, promotions and some checks are then examined in a partial-width search. In the end-game a much deeper search (the built-in limit is 22-ply) can be employed, since fewer moves have to be considered. A "ply" is a half-move, i.e. Black's move or White's move.
* In Fixed time mode, RChess plays more strongly on a faster computer, for obvious reasons.

Original file name: RChess ReadMe - converted on Tuesday, 12 October 1999, 10:42

This page was created using TextToHTML. TextToHTML is a free software for Macintosh and is (c) 1995,1996 by Kris Coppieters