mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 00:33:09 +00:00
Limit king ring to eight squares
In current master the size of the king ring varies abruptly from eight squares when the king is in g8, to 12 squares when it is in g7. Because the king ring is used for estimating attack strength, this may lead to an overestimation of king danger in some positions. This patch limits the king ring to eight squares in all cases. Inspired by the following forum thread: https://groups.google.com/forum/?fromgroups=#!topic/fishcooking/xrUCQ7b0ObE Passed STC: LLR: 2.97 (-2.94,2.94) [0.00,5.00] Total: 9244 W: 1777 L: 1611 D: 5856 and LTC: LLR: 2.96 (-2.94,2.94) [0.00,5.00] Total: 87121 W: 11765 L: 11358 D: 63998 Bench: 6121121 Closes #1115
This commit is contained in:
parent
7edd1f7ccd
commit
862934d7ae
1 changed files with 5 additions and 2 deletions
|
@ -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<Up>(b);
|
||||
ei.kingRing[Us] = b;
|
||||
if (relative_rank(Us, pos.square<KING>(Us)) == RANK_1)
|
||||
ei.kingRing[Us] |= shift<Up>(b);
|
||||
|
||||
ei.kingAttackersCount[Them] = popcount(b & ei.pe->pawn_attacks(Them));
|
||||
ei.kingAdjacentZoneAttacksCount[Them] = ei.kingAttackersWeight[Them] = 0;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue