From: snicolet Date: Sun, 27 Mar 2016 19:54:39 +0000 (+0100) Subject: Bonus for loose enemies X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=24dac5ccd309837c6767dcf6b145be385eea2e21 Bonus for loose enemies STC: LLR: 2.96 (-2.94,2.94) [0.00,5.00] Total: 30504 W: 5743 L: 5485 D: 19276 LTC: LLR: 2.97 (-2.94,2.94) [0.00,5.00] Total: 11936 W: 1651 L: 1493 D: 8792 Bench: 8880041 Resolves #606 --- diff --git a/src/evaluate.cpp b/src/evaluate.cpp index d8017065..a63b40ae 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -185,6 +185,7 @@ namespace { const Score TrappedRook = S(92, 0); const Score Checked = S(20, 20); const Score ThreatByHangingPawn = S(70, 63); + const Score LooseEnemies = S( 0, 25); const Score Hanging = S(48, 28); const Score ThreatByPawnPush = S(31, 19); const Score Unstoppable = S( 0, 20); @@ -469,6 +470,11 @@ namespace { Bitboard b, weak, defended, safeThreats; Score score = SCORE_ZERO; + // Small bonus if the opponent has loose pawns or pieces + if ( (pos.pieces(Them) ^ pos.pieces(Them, QUEEN, KING)) + & ~(ei.attackedBy[Us][ALL_PIECES] | ei.attackedBy[Them][ALL_PIECES])) + score += LooseEnemies; + // Non-pawn enemies attacked by a pawn weak = (pos.pieces(Them) ^ pos.pieces(Them, PAWN)) & ei.attackedBy[Us][PAWN];