From: Joona Kiiski Date: Fri, 22 Mar 2013 07:54:03 +0000 (+0100) Subject: Fix bogus mate scores in some positions X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=09f1fdf52fe67b500f1a0159da9e53e9e3456679 Fix bogus mate scores in some positions Always before pruning the move, it's important to check that: bestValue > VALUE_MATED_IN_MAX_PLY See example position: 8/2p1p3/P1NpP3/3k4/1P1BN3/2P1P3/2Q5/6K1 w - - 0 1 http://support.stockfishchess.org/discussions/problems/268-wrong-declaring-a-forced-mate-in-3-moves This problem was present in 2.3.1, then it was fixed by my patch. After 24000 games at 15+0.05 ELO: 2.40 +-4.4 (95%) LOS: 95.7% Total: 24000 W: 4774 L: 4608 D: 14618 bench: 4465997 --- diff --git a/src/search.cpp b/src/search.cpp index 7a06dad9..6dcd9f1d 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -856,7 +856,8 @@ split_point_start: // At split points actual search starts from here && !captureOrPromotion && !inCheck && !dangerous - && move != ttMove) + && move != ttMove + && bestValue > VALUE_MATED_IN_MAX_PLY) { // Move count based pruning if ( depth < 16 * ONE_PLY