Crafty 6.x Version History
- 6.4
- pawn scoring modified. passed pawns were scored low enough that Crafty
would let the opponent create one in the endgame (as long as it wasn't an
"outside" passed pawn). this required adjusting isolated pawns as well. all
"weak" pawns (pawns on open files that aren't defended by a pawn) are not
penalized so much if there aren't any rooks/queens to attack on the
file.
- 6.3
- null-move code moved from NextMove() directly into Search(). this
results is a "cleaner" implementation, as well as fixing an error in the
node type, caused by Search() thinking that after the first move tried fails
to cause a cutoff, that suddenly this node is a type=3 node (Knuth and
Moore). this bug would then introduce null-moves into later nodes that are a
waste of time.
- 6.2
- modified the "futility" cutoff to (a) emulate the way the program
normally searches, but avoiding MakeMove() calls when possible, and (2) not
searching a move near the horizon if the material score is hopeless.
- 6.1
- added a "hung piece" term to Evaluate() which penalizes the side to move
if a piece is attacked by a lesser piece, or a piece is attacked and not
defended at all. additionally, a new scoring term was added to detect a weak
back rank (where the king does not attack an empty square on the 2nd rank,
and there are no horizontally sliding pieces [rook or queen] on the first
rank to guard against back-rank mates.
- 6.0
- converted to rotated bitboards to make attack generation *much* faster.
MakeMove() now can look up the attack bit vectors rather than computing them
which is significantly faster.
Lim Unlimited / 24 Jul 1996