X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fpawns.cpp;h=1653e23ad5181b01bb9a1f16c16e794faddc1a0f;hp=8b44587f6962ccfc0e05ca1a7b91e4a15d84a85e;hb=ed72a1e9ba37a9fa2674da8f46bb0597a1721c2d;hpb=cccf3c815c2f2be884fac4248a2be91b6823df8a diff --git a/src/pawns.cpp b/src/pawns.cpp index 8b44587f..1653e23a 100644 --- a/src/pawns.cpp +++ b/src/pawns.cpp @@ -57,12 +57,6 @@ namespace { // Unsupported pawn penalty const Score UnsupportedPawnPenalty = S(20, 10); - // Center bind bonus: Two pawns controlling the same central square - const Bitboard CenterBindMask[COLOR_NB] = { - (FileDBB | FileEBB) & (Rank5BB | Rank6BB | Rank7BB), - (FileDBB | FileEBB) & (Rank4BB | Rank3BB | Rank2BB) - }; - const Score CenterBind = S(16, 0); // Weakness of our pawn shelter in front of the king by [distance from edge][rank] @@ -106,6 +100,10 @@ namespace { const Square Right = (Us == WHITE ? DELTA_NE : DELTA_SW); const Square Left = (Us == WHITE ? DELTA_NW : DELTA_SE); + const Bitboard CenterBindMask = + Us == WHITE ? (FileDBB | FileEBB) & (Rank5BB | Rank6BB | Rank7BB) + : (FileDBB | FileEBB) & (Rank4BB | Rank3BB | Rank2BB); + Bitboard b, neighbours, doubled, supported, phalanx; Square s; bool passed, isolated, opposed, backward, lever, connected; @@ -130,9 +128,7 @@ namespace { File f = file_of(s); - // This file cannot be semi-open e->semiopenFiles[Us] &= ~(1 << f); - e->pawnAttacksSpan[Us] |= pawn_attack_span(Us, s); // Flag the pawn @@ -200,7 +196,7 @@ namespace { e->pawnSpan[Us] = b ? int(msb(b) - lsb(b)) : 0; // Center binds: Two pawns controlling the same central square - b = shift_bb(ourPawns) & shift_bb(ourPawns) & CenterBindMask[Us]; + b = shift_bb(ourPawns) & shift_bb(ourPawns) & CenterBindMask; score += popcount(b) * CenterBind; return score;