diff --git a/src/search.cpp b/src/search.cpp index 7873e7dc..b68c8b78 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -947,13 +947,16 @@ moves_loop: // When in check search starts from here && moveCount > 1 && (!captureOrPromotion || moveCountPruning)) { - int mch = std::max(1, moveCount - (ss-1)->moveCount / 16); - Depth r = reduction(improving, depth, mch); + Depth r = reduction(improving, depth, moveCount); if (captureOrPromotion) r -= r ? ONE_PLY : DEPTH_ZERO; else { + // Decrease reduction if opponent's move count is high + if ((ss-1)->moveCount > 15) + r -= ONE_PLY; + // Increase reduction if ttMove is a capture if (ttCapture) r += ONE_PLY;