X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fevaluate.cpp;h=f93e23f66d1ef7b1578e11b50fb740c610846f72;hp=3bd790bdf4f7f469a2fa9584eb21a556bd049455;hb=862934d7aeed1722bfff2872f755c708416c41a7;hpb=0c1f119069bf915b85126159d4865c4bcc532239 diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 3bd790bd..f93e23f6 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -88,7 +88,7 @@ namespace { // kingRing[color] is the zone around the king which is considered // by the king safety evaluation. This consists of the squares directly - // adjacent to the king, and the three (or two, for a king on an edge file) + // adjacent to the king, and (only for a king on its first rank) the // squares two ranks in front of the king. For instance, if black's king // is on g8, kingRing[BLACK] is a bitboard containing the squares f8, h8, // f7, g7, h7, f6, g6 and h6. @@ -242,7 +242,10 @@ namespace { // Init our king safety tables only if we are going to use them if (pos.non_pawn_material(Them) >= QueenValueMg) { - ei.kingRing[Us] = b | shift(b); + ei.kingRing[Us] = b; + if (relative_rank(Us, pos.square(Us)) == RANK_1) + ei.kingRing[Us] |= shift(b); + ei.kingAttackersCount[Them] = popcount(b & ei.pe->pawn_attacks(Them)); ei.kingAdjacentZoneAttacksCount[Them] = ei.kingAttackersWeight[Them] = 0; }