X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fevaluate.cpp;h=58058b1ba53b7b31d9923922526e03ec956f99ed;hp=4a52e62658f0deccce3eea3c1287b9d87b3147fa;hb=07b247f9434f3633570aa124539ed5d2fc4f904f;hpb=abac509ccb1f197da1159ce02daaf4fa737c32e5;ds=sidebyside diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 4a52e626..58058b1b 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -187,6 +187,7 @@ namespace { const Score OtherCheck = S(10, 10); const Score ThreatByHangingPawn = S(71, 61); const Score LooseEnemies = S( 0, 25); + const Score WeakQueen = S(35, 0); const Score Hanging = S(48, 27); const Score ThreatByPawnPush = S(38, 22); const Score Unstoppable = S( 0, 20); @@ -488,6 +489,13 @@ namespace { & ~(ei.attackedBy[Us][ALL_PIECES] | ei.attackedBy[Them][ALL_PIECES])) score += LooseEnemies; + // Bonus for pin or discovered attack on the opponent queen + if ( pos.count(Them) == 1 + && pos.slider_blockers(pos.pieces(), + pos.pieces(Us, ROOK, BISHOP), + pos.square(Them))) + score += WeakQueen; + // Non-pawn enemies attacked by a pawn weak = (pos.pieces(Them) ^ pos.pieces(Them, PAWN)) & ei.attackedBy[Us][PAWN];