Crafty 2.x Version History
- 2.7
- new evaluation code to handle the "outside passed pawn" concept. Crafty
now understands that a passed pawn on the side away from the rest of the
pawns is a winning advantage due to decoying the king away from the pawns to
prevent the passer from promoting. the advantage increases as material is
removed from the board.
- 2.6
- evaluation modifications attempting to cure Crafty's frantic effort to
develop all its pieces without giving a lot of regard to the resulting
position until after the pieces are out.
- 2.5
- first check extensions added. in the extension search (stage between
full-width and captures-only, up to two checking moves can be included, if
there are checks in the full-width part of the search. if only one check
occurs in the full-width, then only one check will be included in the
extension phase of the selective search.
- 2.4
- king safety code completely rewritten. it now analyzes "defects" in the
king safety field and counts them as appropriate. these defects are then
summed up and used as an index into a vector of of values that turns them
into a score in a non-linear fashion. increasing defects quickly "ramp up"
the score to about 1/3+ of a pawn, then additional faults slowly increase
the penalty.
- 2.3
- king safety code modified further, penalties were significant enough to
cause search anomolies. modified rook scoring to avoid having the rook
trapped in the corner when the king is forced to move rather than castle,
and to keep the rook in a position to be able to reach open files in one
move, which avoids getting them into awkward positions where they become
almost worthless.
- 2.2
- king safety code re-written and cleaned up. Crafty was giving multiple
penalties which was causing the king safety score to be extremely large (and
unstable.) now, if it finds something wrong with king safety, it only
penalizes a weakness once.
- 2.1
- search is now broken down into three cleanly-defined phases: (1) basic
full-width search [Search()]; (2) extended tactical search [extend()] which
includes winning/even captures and then passed pawn pushes to the 6th or 7th
rank (if the pawn pushes are safe); (3) normal quiescence search [Quiesce()]
which only includes captures that appear to gain material.
- 2.0
- initial version preparing for search extension additions. this version
has a new "next_evasion()" routine that is called when the king is in check.
it generates sensible (nearly all are legal) moves which include capturing
the checking piece (if there is only one), moving the king (but not along
the checking ray), and interpositions that block the checking ray (if there
is only one checking piece.
Lim Unlimited / 24 Jul 1996