LimUnltd . . . Top Up . . . First Prev Next Last . . . Help

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.

LimUnltd . . . Top Up . . . First Prev Next Last . . . Help

Lim Unlimited / 24 Jul 1996