mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 16:53:09 +00:00
Introduce pinning bonus
Add a bonus if a slider is pinning an enemy piece. Idea from Critter. After 27443 games at 2"+0.05 Mod vs Orig 5900 - 5518 - 16025 ELO +4 (+- 2.7) Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
parent
161c6b025e
commit
cf0561d31a
1 changed files with 12 additions and 3 deletions
|
@ -493,10 +493,8 @@ namespace {
|
||||||
else
|
else
|
||||||
assert(false);
|
assert(false);
|
||||||
|
|
||||||
// Update attack info
|
|
||||||
ei.attackedBy[Us][Piece] |= b;
|
ei.attackedBy[Us][Piece] |= b;
|
||||||
|
|
||||||
// King attacks
|
|
||||||
if (b & ei.kingRing[Them])
|
if (b & ei.kingRing[Them])
|
||||||
{
|
{
|
||||||
ei.kingAttackersCount[Us]++;
|
ei.kingAttackersCount[Us]++;
|
||||||
|
@ -506,12 +504,23 @@ namespace {
|
||||||
ei.kingAdjacentZoneAttacksCount[Us] += popcount<Max15>(bb);
|
ei.kingAdjacentZoneAttacksCount[Us] += popcount<Max15>(bb);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mobility
|
|
||||||
mob = (Piece != QUEEN ? popcount<Max15>(b & mobilityArea)
|
mob = (Piece != QUEEN ? popcount<Max15>(b & mobilityArea)
|
||||||
: popcount<Full >(b & mobilityArea));
|
: popcount<Full >(b & mobilityArea));
|
||||||
|
|
||||||
mobility += MobilityBonus[Piece][mob];
|
mobility += MobilityBonus[Piece][mob];
|
||||||
|
|
||||||
|
// Add a bonus if a slider is pinning an enemy piece
|
||||||
|
if ( (Piece == BISHOP || Piece == ROOK || Piece == QUEEN)
|
||||||
|
&& (PseudoAttacks[Piece][pos.king_square(Them)] & s))
|
||||||
|
{
|
||||||
|
b = BetweenBB[s][pos.king_square(Them)] & pos.occupied_squares();
|
||||||
|
|
||||||
|
assert(b);
|
||||||
|
|
||||||
|
if (!(b & (b - 1)) && (b & pos.pieces(Them)))
|
||||||
|
score += ThreatBonus[Piece][type_of(pos.piece_on(first_1(b)))] / 2;
|
||||||
|
}
|
||||||
|
|
||||||
// Decrease score if we are attacked by an enemy pawn. Remaining part
|
// Decrease score if we are attacked by an enemy pawn. Remaining part
|
||||||
// of threat evaluation must be done later when we have full attack info.
|
// of threat evaluation must be done later when we have full attack info.
|
||||||
if (ei.attackedBy[Them][PAWN] & s)
|
if (ei.attackedBy[Them][PAWN] & s)
|
||||||
|
|
Loading…
Add table
Reference in a new issue