From 8765f9ce168b129b3283fc1e458eae2f8871b1d4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=B6rg=20Oster?= Date: Sun, 25 Dec 2016 10:44:56 +0100 Subject: [PATCH] Further simplify unstoppable (#938) By finally moving it into passed pawns eval. Tested for no regression: STC LLR: 3.25 (-2.94,2.94) [-3.00,1.00] Total: 57109 W: 10023 L: 9947 D: 37139 LTC LLR: 2.96 (-2.94,2.94) [-3.00,1.00] Total: 21511 W: 2800 L: 2680 D: 16031 Bench: 5255881 --- src/evaluate.cpp | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 0136db84..19bfc9fe 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -197,7 +197,6 @@ namespace { const Score WeakQueen = S(50, 10); const Score Hanging = S(48, 27); const Score ThreatByPawnPush = S(38, 22); - const Score Unstoppable = S( 0, 45); const Score PawnlessFlank = S(20, 80); const Score HinderPassedPawn = S( 7, 0); const Score ThreatByRank = S(16, 3); @@ -678,6 +677,10 @@ namespace { mbonus += rr + r * 2, ebonus += rr + r * 2; } // rr != 0 + // Assign a small bonus when no pieces left (unstoppable) + if (!pos.non_pawn_material(Us) && !pos.non_pawn_material(Them)) + ebonus += 20; + score += make_score(mbonus, ebonus) + PassedFile[file_of(s)]; } @@ -852,16 +855,6 @@ Value Eval::evaluate(const Position& pos) { score += evaluate_passed_pawns(pos, ei) - evaluate_passed_pawns(pos, ei); - // If both sides have only pawns, score for potential unstoppable pawns - if (!pos.non_pawn_material(WHITE) && !pos.non_pawn_material(BLACK)) - { - if (ei.pi->passed_pawns(WHITE)) - score += Unstoppable; - - if (ei.pi->passed_pawns(BLACK)) - score -= Unstoppable; - } - // Evaluate space for both sides, only during opening if (pos.non_pawn_material(WHITE) + pos.non_pawn_material(BLACK) >= 12222) score += evaluate_space(pos, ei) -- 2.39.2