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);
& ~(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<QUEEN>(Them) == 1
+ && pos.slider_blockers(pos.pieces(),
+ pos.pieces(Us, ROOK, BISHOP),
+ pos.square<QUEEN>(Them)))
+ score += WeakQueen;
+
// Non-pawn enemies attacked by a pawn
weak = (pos.pieces(Them) ^ pos.pieces(Them, PAWN)) & ei.attackedBy[Us][PAWN];