mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-24 19:16:49 +08:00
More readable trapped rook condition
Prefer file_of(s) < file_of(ksq) to the inidrect file_of(ksq) < FILE_E To evaluate if semiopen side to check is the left side. Also other small touches while there. No functional change.
This commit is contained in:
@@ -280,12 +280,11 @@ Value Entry::shelter_storm(const Position& pos, Square ksq) {
|
||||
}
|
||||
|
||||
|
||||
/// Entry::update_safety() calculates and caches a bonus for king safety.
|
||||
/// It is called only when king square changes, which is about 20% of total
|
||||
/// king_safety() calls.
|
||||
/// Entry::do_king_safety() calculates a bonus for king safety. It is called only
|
||||
/// when king square changes, which is about 20% of total king_safety() calls.
|
||||
|
||||
template<Color Us>
|
||||
Score Entry::update_safety(const Position& pos, Square ksq) {
|
||||
Score Entry::do_king_safety(const Position& pos, Square ksq) {
|
||||
|
||||
kingSquares[Us] = ksq;
|
||||
castlingRights[Us] = pos.can_castle(Us);
|
||||
@@ -296,7 +295,7 @@ Score Entry::update_safety(const Position& pos, Square ksq) {
|
||||
while (!(DistanceRingsBB[ksq][minKPdistance[Us]++] & pawns)) {}
|
||||
|
||||
if (relative_rank(Us, ksq) > RANK_4)
|
||||
return kingSafety[Us] = make_score(0, -16 * minKPdistance[Us]);
|
||||
return make_score(0, -16 * minKPdistance[Us]);
|
||||
|
||||
Value bonus = shelter_storm<Us>(pos, ksq);
|
||||
|
||||
@@ -307,11 +306,11 @@ Score Entry::update_safety(const Position& pos, Square ksq) {
|
||||
if (pos.can_castle(MakeCastling<Us, QUEEN_SIDE>::right))
|
||||
bonus = std::max(bonus, shelter_storm<Us>(pos, relative_square(Us, SQ_C1)));
|
||||
|
||||
return kingSafety[Us] = make_score(bonus, -16 * minKPdistance[Us]);
|
||||
return make_score(bonus, -16 * minKPdistance[Us]);
|
||||
}
|
||||
|
||||
// Explicit template instantiation
|
||||
template Score Entry::update_safety<WHITE>(const Position& pos, Square ksq);
|
||||
template Score Entry::update_safety<BLACK>(const Position& pos, Square ksq);
|
||||
template Score Entry::do_king_safety<WHITE>(const Position& pos, Square ksq);
|
||||
template Score Entry::do_king_safety<BLACK>(const Position& pos, Square ksq);
|
||||
|
||||
} // namespace Pawns
|
||||
|
||||
Reference in New Issue
Block a user