diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 7309f9f3..ac9cf90b 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -540,6 +540,9 @@ namespace { score += ThreatByMinor[type_of(pos.piece_on(s))]; if (type_of(pos.piece_on(s)) != PAWN) score += ThreatByRank * (int)relative_rank(Them, s); + + else if (pos.blockers_for_king(Them) & s) + score += ThreatByRank * (int)relative_rank(Them, s) / 2; } b = weak & attackedBy[Us][ROOK]; @@ -549,6 +552,9 @@ namespace { score += ThreatByRook[type_of(pos.piece_on(s))]; if (type_of(pos.piece_on(s)) != PAWN) score += ThreatByRank * (int)relative_rank(Them, s); + + else if (pos.blockers_for_king(Them) & s) + score += ThreatByRank * (int)relative_rank(Them, s) / 2; } if (weak & attackedBy[Us][KING])