From: Marco Costalba Date: Mon, 26 Mar 2012 18:55:32 +0000 (-0700) Subject: Merge pull request #9 from glinscott/master X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=a56322fde813094afd8ffa60d12761f94e0bd3ef;hp=--cc Merge pull request #9 from glinscott/master Penalty for undefended rook Almost no change at longer TC, but perhaps there is a tiny increase.... After 17522 games at 10"+0.05 Mod vs Orig 3064 - 2967 - 11491 ELO +2 Signed-off-by: Marco Costalba --- a56322fde813094afd8ffa60d12761f94e0bd3ef diff --cc src/evaluate.cpp index b2cae94c,c03aa99f..6e515d88 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@@ -678,21 -679,23 +678,24 @@@ Value do_evaluate(const Position& pos, const Color Them = (Us == WHITE ? BLACK : WHITE); -- Bitboard b; ++ Bitboard b, undefended, undefendedMinors, weakEnemies; Score score = SCORE_ZERO; - // Undefended minors get penalized even if not under attack - Bitboard undefended = pos.pieces(Them) - & (pos.pieces(BISHOP) | pos.pieces(KNIGHT)) - & ~ei.attackedBy[Them][0]; - if (undefended) - score += single_bit(undefended) ? UndefendedMinorPenalty - : UndefendedMinorPenalty * 2; + // Undefended pieces get penalized even if not under attack - Bitboard undefended = pos.pieces(Them) & ~ei.attackedBy[Them][0]; - const Bitboard undefendedMinors = undefended & (pos.pieces(BISHOP) | pos.pieces(KNIGHT)); - ++ undefended = pos.pieces(Them) & ~ei.attackedBy[Them][0]; ++ undefendedMinors = undefended & (pos.pieces(BISHOP) | pos.pieces(KNIGHT)); ++ + if (undefendedMinors) + score += single_bit(undefendedMinors) ? UndefendedPiecePenalty + : UndefendedPiecePenalty * 2; + if (undefended & pos.pieces(ROOK)) + score += UndefendedPiecePenalty; // Enemy pieces not defended by a pawn and under our attack -- Bitboard weakEnemies = pos.pieces(Them) -- & ~ei.attackedBy[Them][PAWN] -- & ei.attackedBy[Us][0]; ++ weakEnemies = pos.pieces(Them) ++ & ~ei.attackedBy[Them][PAWN] ++ & ei.attackedBy[Us][0]; ++ if (!weakEnemies) return score;