Skip to content

Commit

Permalink
Introduce concept of double pawn protection.
Browse files Browse the repository at this point in the history
Exclude doubly protected by pawns squares when calculating attackers on
king ring. Idea of this patch is not to count attackers if they attack
only squares that are protected by two pawns.

STC
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 70040 W: 15476 L: 15002 D: 39562
http://tests.stockfishchess.org/tests/view/5c0354860ebc5902bcee1106

LTC
LLR: 2.96 (-2.94,2.94) [0.00,5.00]
Total: 16530 W: 2795 L: 2607 D: 11128
http://tests.stockfishchess.org/tests/view/5c0385080ebc5902bcee14b5

This is third king safety patch in recent times so we probably need
retuning of king safety parameters.

Bench: 3057978
  • Loading branch information
Vizvezdenec authored and snicolet committed Dec 2, 2018
1 parent 982fd9c commit 9dc6d27
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 1 deletion.
10 changes: 10 additions & 0 deletions src/bitboard.h
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,16 @@ constexpr Bitboard pawn_attacks_bb(Bitboard b) {
}


/// double_pawn_attacks_bb() returns the pawn attacks for the given color
/// from the squares in the given bitboard.

template<Color C>
constexpr Bitboard double_pawn_attacks_bb(Bitboard b) {
return C == WHITE ? shift<NORTH_WEST>(b) & shift<NORTH_EAST>(b)
: shift<SOUTH_WEST>(b) & shift<SOUTH_EAST>(b);
}


/// adjacent_files_bb() returns a bitboard representing all the squares on the
/// adjacent files of the given one.

Expand Down
2 changes: 1 addition & 1 deletion src/evaluate.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,7 @@ namespace {
attackedBy[Us][Pt] |= b;
attackedBy[Us][ALL_PIECES] |= b;

if (b & kingRing[Them])
if (b & kingRing[Them] & ~double_pawn_attacks_bb<Them>(pos.pieces(Them, PAWN)))
{
kingAttackersCount[Us]++;
kingAttackersWeight[Us] += KingAttackWeights[Pt];
Expand Down

0 comments on commit 9dc6d27

Please sign in to comment.