X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fevaluate.cpp;h=031b803417c4c4832f7b6fe5bdb2a3d26618f724;hp=7ee3652b1b40c22d273f374e35e862c638269b4b;hb=043a469f83b4c81f94ab991029b4cd49fb05452e;hpb=21926ce2d82b225b06005022b5fd8b4f0c1945c1 diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 7ee3652b..031b8034 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -162,8 +162,8 @@ namespace { // supported by a pawn. If the minor piece occupies an outpost square // then score is doubled. const Score Outpost[][2] = { - { S(22, 6), S(33, 9) }, // Knight - { S( 9, 2), S(14, 4) } // Bishop + { S(22, 6), S(36,12) }, // Knight + { S( 9, 2), S(15, 5) } // Bishop }; // RookOnFile[semiopen/open] contains bonuses for each rook when there is no @@ -214,6 +214,7 @@ namespace { const Score ThreatBySafePawn = S(182,175); const Score ThreatByRank = S( 16, 3); const Score Hanging = S( 48, 27); + const Score WeakUnopposedPawn = S( 5, 25); const Score ThreatByPawnPush = S( 38, 22); const Score HinderPassedPawn = S( 7, 0); const Score TrappedBishopA1H1 = S( 50, 50); @@ -593,6 +594,10 @@ namespace { score += ThreatByKing[more_than_one(b)]; } + // Bonus for opponent unopposed weak pawns + if (pos.pieces(Us, ROOK, QUEEN)) + score += WeakUnopposedPawn * pe->weak_unopposed(Them); + // Find squares where our pawns can push on the next move b = shift(pos.pieces(Us, PAWN)) & ~pos.pieces(); b |= shift(b & TRank3BB) & ~pos.pieces();