X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fsearch.cpp;h=71aea553dc0fa7c5edd67d270124d04d8b9a461f;hb=bfbfc24d07ecd9ad272175b0470e7cf207583b87;hp=017f65be3984d30c312679164d47431d4fc441a1;hpb=a55b06d3c90674261b387bcf27f13b6813801bc3;p=stockfish diff --git a/src/search.cpp b/src/search.cpp index 017f65be..71aea553 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -1439,14 +1439,15 @@ namespace { return value_from_tt(tte->value(), ply); // Evaluate the position statically - Value staticValue = evaluate(pos, ei, threadID); + bool isCheck = pos.is_check(); + Value staticValue = (isCheck ? -VALUE_INFINITE : evaluate(pos, ei, threadID)); if (ply == PLY_MAX - 1) - return staticValue; + return evaluate(pos, ei, threadID); // Initialize "stand pat score", and return it immediately if it is // at least beta. - Value bestValue = (pos.is_check() ? -VALUE_INFINITE : staticValue); + Value bestValue = staticValue; if (bestValue >= beta) return bestValue; @@ -1458,11 +1459,10 @@ namespace { // to search the moves. Because the depth is <= 0 here, only captures, // queen promotions and checks (only if depth == 0) will be generated. bool pvNode = (beta - alpha != 1); - MovePicker mp = MovePicker(pos, pvNode, MOVE_NONE, EmptySearchStack, depth, &ei); + MovePicker mp = MovePicker(pos, pvNode, MOVE_NONE, EmptySearchStack, depth, isCheck ? NULL : &ei); Move move; int moveCount = 0; Bitboard dcCandidates = mp.discovered_check_candidates(); - bool isCheck = pos.is_check(); bool enoughMaterial = pos.non_pawn_material(pos.side_to_move()) > RookValueMidgame; // Loop through the moves until no moves remain or a beta cutoff