From 09f1fdf52fe67b500f1a0159da9e53e9e3456679 Mon Sep 17 00:00:00 2001 From: Joona Kiiski Date: Fri, 22 Mar 2013 08:54:03 +0100 Subject: [PATCH] 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 --- src/search.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 -- 2.39.2