X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fevaluate.cpp;h=8d7976d577340842a736b1e94abdddc7a8827d54;hp=7c7ce95cebcf27d72960c0d34d45857e3d10f052;hb=3b70932b0dee0cf1817baf0daa43ac92e18003c4;hpb=384bff4264f199ded8fa28d241ce0e7dc021a97c diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 7c7ce95c..8d7976d5 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -145,7 +145,7 @@ namespace { constexpr Score ThreatByKing = S( 24, 89); constexpr Score ThreatByPawnPush = S( 48, 39); constexpr Score ThreatBySafePawn = S(173, 94); - constexpr Score TrappedRook = S( 52, 10); + constexpr Score TrappedRook = S( 52, 30); constexpr Score WeakQueen = S( 49, 15); #undef S @@ -520,11 +520,11 @@ namespace { } // Bonus for restricting their piece moves + // Greater bonus when landing square is occupied b = attackedBy[Them][ALL_PIECES] & ~stronglyProtected & attackedBy[Us][ALL_PIECES]; - - score += RestrictedPiece * popcount(b); + score += RestrictedPiece * (popcount(b) + popcount(b & pos.pieces())); // Protected or unattacked squares safe = ~attackedBy[Them][ALL_PIECES] | attackedBy[Us][ALL_PIECES]; @@ -698,9 +698,6 @@ namespace { template Score Evaluation::initiative(Score score) const { - Value mg = mg_value(score); - Value eg = eg_value(score); - int outflanking = distance(pos.square(WHITE), pos.square(BLACK)) - distance(pos.square(WHITE), pos.square(BLACK)); @@ -724,6 +721,11 @@ namespace { - 43 * almostUnwinnable - 100 ; + // Give more importance to non-material score + score = score - pos.psq_score() / 2; + Value mg = mg_value(score); + Value eg = eg_value(score); + // Now apply the bonus: note that we find the attacking side by extracting the // sign of the midgame or endgame values, and that we carefully cap the bonus // so that the midgame and endgame scores do not change sign after the bonus.