X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fevaluate.cpp;h=333d04aca277d0b456800017980887967d14e09d;hb=dace61600a12f3f1ad1abcb2625f4c497e8f15ba;hp=48e305efebf569bf1f672168a0f5da293fe748cf;hpb=e917bd59b1e317c6b48dc676473359fdfb86d9d4;p=stockfish diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 48e305ef..333d04ac 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -152,25 +152,25 @@ namespace { }; // Assorted bonuses and penalties - constexpr Score BishopPawns = S( 3, 8); - constexpr Score CloseEnemies = S( 7, 0); + constexpr Score BishopPawns = S( 3, 7); + constexpr Score CloseEnemies = S( 8, 0); constexpr Score CorneredBishop = S( 50, 50); - constexpr Score Hanging = S( 62, 34); - constexpr Score KingProtector = S( 6, 7); - constexpr Score KnightOnQueen = S( 20, 12); - constexpr Score LongDiagonalBishop = S( 44, 0); - constexpr Score MinorBehindPawn = S( 16, 0); - constexpr Score PawnlessFlank = S( 18, 94); - constexpr Score RestrictedPiece = S( 7, 6); - constexpr Score RookOnPawn = S( 10, 28); - constexpr Score SliderOnQueen = S( 49, 21); - constexpr Score ThreatByKing = S( 21, 84); - constexpr Score ThreatByPawnPush = S( 48, 42); - constexpr Score ThreatByRank = S( 14, 3); - constexpr Score ThreatBySafePawn = S(169, 99); - constexpr Score TrappedRook = S( 98, 5); - constexpr Score WeakQueen = S( 51, 10); - constexpr Score WeakUnopposedPawn = S( 14, 20); + constexpr Score Hanging = S( 69, 36); + constexpr Score KingProtector = S( 7, 8); + constexpr Score KnightOnQueen = S( 16, 12); + constexpr Score LongDiagonalBishop = S( 45, 0); + constexpr Score MinorBehindPawn = S( 18, 3); + constexpr Score PawnlessFlank = S( 17, 95); + constexpr Score RestrictedPiece = S( 7, 7); + constexpr Score RookOnPawn = S( 10, 32); + constexpr Score SliderOnQueen = S( 59, 18); + constexpr Score ThreatByKing = S( 24, 89); + constexpr Score ThreatByPawnPush = S( 48, 39); + constexpr Score ThreatByRank = S( 13, 0); + constexpr Score ThreatBySafePawn = S(173, 94); + constexpr Score TrappedRook = S( 96, 4); + constexpr Score WeakQueen = S( 49, 15); + constexpr Score WeakUnopposedPawn = S( 12, 23); #undef S @@ -274,6 +274,7 @@ namespace { kingRing[Us] |= shift(kingRing[Us]); kingAttackersCount[Them] = popcount(kingRing[Us] & pe->pawn_attacks(Them)); + kingRing[Us] &= ~double_pawn_attacks_bb(pos.pieces(Us, PAWN)); kingAttacksCount[Them] = kingAttackersWeight[Them] = 0; } } @@ -309,7 +310,7 @@ namespace { attackedBy[Us][Pt] |= b; attackedBy[Us][ALL_PIECES] |= b; - if (b & kingRing[Them] & ~double_pawn_attacks_bb(pos.pieces(Them, PAWN))) + if (b & kingRing[Them]) { kingAttackersCount[Us]++; kingAttackersWeight[Us] += KingAttackWeights[Pt]; @@ -559,8 +560,7 @@ namespace { // Bonus for restricting their piece moves restricted = attackedBy[Them][ALL_PIECES] - & ~attackedBy[Them][PAWN] - & ~attackedBy2[Them] + & ~stronglyProtected & attackedBy[Us][ALL_PIECES]; score += RestrictedPiece * popcount(restricted);