X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fevaluate.cpp;h=97218baa19f9627cb27ce59948c255e18cef0b81;hp=daf0c1d74d7b2c1e1b5460b5714852ce94ec9e08;hb=30a905c95d0b77874244c8b68ae77daba41ac545;hpb=4a0db9ea3c34d7663a039c40ce810ba9cb743cca diff --git a/src/evaluate.cpp b/src/evaluate.cpp index daf0c1d7..97218baa 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -127,7 +127,7 @@ namespace { // RookOnFile[semiopen/open] contains bonuses for each rook when there is // no (friendly) pawn on the rook file. - constexpr Score RookOnFile[] = { S(20, 7), S(45, 20) }; + constexpr Score RookOnFile[] = { S(18, 7), S(44, 20) }; // ThreatByMinor/ByRook[attacked PieceType] contains bonuses according to // which piece type attacks which one. Attacks on lesser pieces which are @@ -165,13 +165,13 @@ namespace { constexpr Score MinorBehindPawn = S( 16, 0); constexpr Score Overload = S( 13, 6); constexpr Score PawnlessFlank = S( 19, 84); - constexpr Score RookOnPawn = S( 10, 30); + constexpr Score RookOnPawn = S( 10, 29); constexpr Score SliderOnQueen = S( 42, 21); constexpr Score ThreatByKing = S( 22, 78); constexpr Score ThreatByPawnPush = S( 45, 40); constexpr Score ThreatByRank = S( 16, 3); constexpr Score ThreatBySafePawn = S(173,102); - constexpr Score TrappedRook = S( 92, 0); + constexpr Score TrappedRook = S( 96, 5); constexpr Score WeakQueen = S( 50, 10); constexpr Score WeakUnopposedPawn = S( 15, 19); @@ -421,7 +421,7 @@ namespace { // which are attacked twice in that flank but not defended by our pawns. kingFlank = KingFlank[file_of(ksq)]; b1 = attackedBy[Them][ALL_PIECES] & kingFlank & Camp; - b2 = b1 & attackedBy2[Them] & ~attackedBy[Us][PAWN]; + b2 = b1 & attackedBy2[Them]; int tropism = popcount(b1) + popcount(b2); @@ -480,15 +480,12 @@ namespace { + 4 * tropism - 873 * !pos.count(Them) - 6 * mg_value(score) / 8 + + mg_value(mobility[Them] - mobility[Us]) - 30; // Transform the kingDanger units into a Score, and subtract it from the evaluation if (kingDanger > 0) - { - int mobilityDanger = mg_value(mobility[Them] - mobility[Us]); - kingDanger = std::max(0, kingDanger + mobilityDanger); score -= make_score(kingDanger * kingDanger / 4096, kingDanger / 16); - } } // Penalty when our king is on a pawnless flank