X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fpawns.cpp;h=c581c8e72e90fa7ef4ac64408b1fa56405b1d21b;hp=7d39a4a08bde360f2299f3cc231817e0d749ac07;hb=5446e6f408f2ed7fa281dbe0097c46674d193260;hpb=39257509452a81db28538462e6581b05d1a4b7fb diff --git a/src/pawns.cpp b/src/pawns.cpp index 7d39a4a0..c581c8e7 100644 --- a/src/pawns.cpp +++ b/src/pawns.cpp @@ -67,7 +67,7 @@ namespace { constexpr Color Them = (Us == WHITE ? BLACK : WHITE); constexpr Direction Up = (Us == WHITE ? NORTH : SOUTH); - Bitboard b, neighbours, stoppers, doubled, supported, phalanx; + Bitboard b, neighbours, stoppers, doubled, support, phalanx; Bitboard lever, leverPush; Square s; bool opposed, backward; @@ -102,7 +102,7 @@ namespace { doubled = ourPawns & (s - Up); neighbours = ourPawns & adjacent_files_bb(f); phalanx = neighbours & rank_bb(s); - supported = neighbours & rank_bb(s - Up); + support = neighbours & rank_bb(s - Up); // A pawn is backward when it is behind all pawns of the same color // on the adjacent files and cannot be safely advanced. @@ -114,22 +114,22 @@ namespace { // which could become passed after one or two pawn pushes when are // not attacked more times than defended. if ( !(stoppers ^ lever ^ leverPush) - && popcount(supported) >= popcount(lever) - 1 - && popcount(phalanx) >= popcount(leverPush)) + && popcount(support) >= popcount(lever) - 1 + && popcount(phalanx) >= popcount(leverPush)) e->passedPawns[Us] |= s; else if ( stoppers == SquareBB[s + Up] && relative_rank(Us, s) >= RANK_5) { - b = shift(supported) & ~theirPawns; + b = shift(support) & ~theirPawns; while (b) if (!more_than_one(theirPawns & PawnAttacks[Us][pop_lsb(&b)])) e->passedPawns[Us] |= s; } // Score this pawn - if (supported | phalanx) - score += Connected[opposed][bool(phalanx)][popcount(supported)][relative_rank(Us, s)]; + if (support | phalanx) + score += Connected[opposed][bool(phalanx)][popcount(support)][relative_rank(Us, s)]; else if (!neighbours) score -= Isolated, e->weakUnopposed[Us] += !opposed; @@ -137,7 +137,7 @@ namespace { else if (backward) score -= Backward, e->weakUnopposed[Us] += !opposed; - if (doubled && !supported) + if (doubled && !support) score -= Doubled; } @@ -185,7 +185,6 @@ Entry* probe(const Position& pos) { e->key = key; e->scores[WHITE] = evaluate(pos, e); e->scores[BLACK] = evaluate(pos, e); - e->openFiles = popcount(e->semiopenFiles[WHITE] & e->semiopenFiles[BLACK]); e->asymmetry = popcount( (e->passedPawns[WHITE] | e->passedPawns[BLACK]) | (e->semiopenFiles[WHITE] ^ e->semiopenFiles[BLACK])); @@ -214,10 +213,10 @@ Value Entry::evaluate_shelter(const Position& pos, Square ksq) { for (File f = File(center - 1); f <= File(center + 1); ++f) { b = ourPawns & file_bb(f); - int ourRank = b ? relative_rank(Us, backmost_sq(Us, b)) : 0; + Rank ourRank = b ? relative_rank(Us, backmost_sq(Us, b)) : RANK_1; b = theirPawns & file_bb(f); - int theirRank = b ? relative_rank(Us, frontmost_sq(Them, b)) : 0; + Rank theirRank = b ? relative_rank(Us, frontmost_sq(Them, b)) : RANK_1; int d = std::min(f, ~f); safety += ShelterStrength[d][ourRank]; @@ -237,7 +236,7 @@ Score Entry::do_king_safety(const Position& pos) { Square ksq = pos.square(Us); kingSquares[Us] = ksq; - castlingRights[Us] = pos.can_castle(Us); + castlingRights[Us] = pos.castling_rights(Us); int minKingPawnDistance = 0; Bitboard pawns = pos.pieces(Us, PAWN);