int probCutCount = 0;
while ( (move = mp.next_move()) != MOVE_NONE
- && probCutCount < 3)
+ && probCutCount < 2 + 2 * cutNode)
if (move != excludedMove && pos.legal(move))
{
probCutCount++;
movedPiece = pos.moved_piece(move);
givesCheck = gives_check(pos, move);
- // Skip quiet moves if movecount exceeds our FutilityMoveCount threshold
- moveCountPruning = depth < 16 * ONE_PLY
- && moveCount >= FutilityMoveCounts[improving][depth / ONE_PLY];
-
// Step 13. Extensions (~70 Elo)
// Singular extension search (~60 Elo). If all moves but one fail low on a
&& pos.non_pawn_material(us)
&& bestValue > VALUE_MATED_IN_MAX_PLY)
{
+ // Skip quiet moves if movecount exceeds our FutilityMoveCount threshold
+ moveCountPruning = depth < 16 * ONE_PLY
+ && moveCount >= FutilityMoveCounts[improving][depth / ONE_PLY];
+
if ( !captureOrPromotion
&& !givesCheck
&& !pos.advanced_pawn_push(move))