Age | Commit message (Collapse) | Author | Files | Lines |
|
distfiles (see previous commit).
|
|
inserted at the top, and the read.me file has also been modified.
Track that by updating checksums and adjusting Makefile to fit.
|
|
executable with g++ as well.
|
|
18.14 Minor bug in ResignOrDraw() code caused Crafty to not offer draws
although it would accept them when appropriate. Rook vs Minor
is now evaluated as "neither side can win" an oversight in the
EvaluateWinner() code. minor bug in ResignOrDraw() would fail to
offer draws due to the +0.01/-0.01 draw scores returned by the
EGTB probe code.
18.15 change in endgame draw recognition to handle the case where one
side appears to be in a lost ending but is stalemated. the code
now evaluates such positions as "DrawScore()" instead. the code
to accept/decline draws has been modified. when a draw offer is
received, a global variable "draw_offer_pending" is set to 1.
when the search for a move for crafty terminates, crafty then
uses this value to decide whether to accept or decline the draw.
this means that the accept/decline won't happen until _after_ the
search has a chance to see if something good is happening that
should cause the draw to be declined, closing a timing hole that
used to exist that let a few "suspects" get away with draws that
should not have happened (ie crafty has - scores for a long time,
the opponent suddenly fails low and sees he is losing and offers
a draw quickly. Crafty would accept before doing a search and
noticing that it was suddenly winning.) minor evaluation change
to notice that K+B+right RP vs K+B is not necessarily won if the
weaker side has a bishop of the right color.
|
|
assembly substitutes.
|
|
* Deep Blue extension limit removed and restored to one ply of extension per
ply of search.
* pruning in q-search fixed so that a capture will be considered if it takes
the total material on the board down to a bishop or less for the opponent,
as that can greatly influence the evaluation with the EvaluateWinner() code.
* as the 50 move rule draws near, the hash table scores are marked as invalid
every 5 moves so that hashing can't hide potential 50-move-rule draws.
* lazy evaluation code modified to be more conservative, since in endgames
the positional score can be a large change.
* EvaluatePassedPawnRaces() fixed so that if one side has two pawns that are
far enough apart, it will recognize that even though the king is "in the
square" of either, it can't always stay in the square of one if it has to
capture the other.
* pawn hash signature restored to 64 bits after testing proved that 32 was
producing an unacceptable number of collisions.
* search node counter is now 64 bits as well to avoid overflows.
* in the outside passed pawn code fixed (bad mask).
|
|
version 18.10 include:
- the pawn ram code is now disabled when playing a computer, although the
normal 'blocked pawn' code is always active.
- bug in the code that penalizes a rook with no horizontal mobility was fixed.
if the first rook scored had horizontal mobility, the second rook appeared
to have this mobility as well, which was wrong.
- pawn hash statistics were wrong on longer searches due to an int overflow on
a multiply and divide calculation. this has been re-ordered to avoid the
overflow.
- for unknown reasons, epd support was disabled. it is now enabled as it
should be.
- bug in EvaluateDraws() fixed to not call KBB vs KN a draw if the correct
tablebase is not available.
- bishop pair scores now vary depending on how many pawns are left on the
board. a pair is not worth a lot if there are 7-8 pawns left as most
diagonals will be blocked by pawns.
- a new way of handling the search extensions is in place. with the old
approach, one ply could not extend more than one full ply. with the new
approach, borrowed from Deep Blue, two consecutive plies can not extend more
than two plies total. It averages out to be the same, of course, but the
effect is a bit different. Now it is possible for a check and recapture to
be applied at the same ply, where they could not before (since a check was
already a full one-ply extension). whether this is better or not is not
clear yet, but it is worth careful analysis.
|
|
Changes since 18.9:
minor bug in book.c would let crafty play lines that were very
rarely played even though there were others that had been played
far more times and were more reliable. king safety scores ramped
up a bit and made more "responsive".
|
|
|
|
+ move the patch digest/checksum values from files/patch-sum to distinfo
|