mirror of
https://github.com/sockspls/badfish
synced 2025-05-01 09:13:08 +00:00
Bonus for checking moves
STC: LLR: 2.97 (-2.94,2.94) [0.00,5.00] Total: 14531 W: 2765 L: 2576 D: 9190 LTC: LLR: 3.20 (-2.94,2.94) [0.00,5.00] Total: 52518 W: 8107 L: 7782 D: 36629 Bench: 7556477 Resolves #435
This commit is contained in:
parent
3c0fe1d9b2
commit
9f5b31c21d
1 changed files with 13 additions and 0 deletions
|
@ -184,6 +184,7 @@ namespace {
|
||||||
const Score Unstoppable = S( 0, 20);
|
const Score Unstoppable = S( 0, 20);
|
||||||
const Score Hanging = S(31, 26);
|
const Score Hanging = S(31, 26);
|
||||||
const Score PawnAttackThreat = S(20, 20);
|
const Score PawnAttackThreat = S(20, 20);
|
||||||
|
const Score Checked = S(20, 20);
|
||||||
|
|
||||||
// Penalty for a bishop on a1/h1 (a8/h8 for black) which is trapped by
|
// Penalty for a bishop on a1/h1 (a8/h8 for black) which is trapped by
|
||||||
// a friendly pawn on b2/g2 (b7/g7 for black). This can obviously only
|
// a friendly pawn on b2/g2 (b7/g7 for black). This can obviously only
|
||||||
|
@ -440,22 +441,34 @@ namespace {
|
||||||
// Enemy queen safe checks
|
// Enemy queen safe checks
|
||||||
b = (b1 | b2) & ei.attackedBy[Them][QUEEN];
|
b = (b1 | b2) & ei.attackedBy[Them][QUEEN];
|
||||||
if (b)
|
if (b)
|
||||||
|
{
|
||||||
attackUnits += QueenCheck * popcount<Max15>(b);
|
attackUnits += QueenCheck * popcount<Max15>(b);
|
||||||
|
score -= Checked;
|
||||||
|
}
|
||||||
|
|
||||||
// Enemy rooks safe checks
|
// Enemy rooks safe checks
|
||||||
b = b1 & ei.attackedBy[Them][ROOK];
|
b = b1 & ei.attackedBy[Them][ROOK];
|
||||||
if (b)
|
if (b)
|
||||||
|
{
|
||||||
attackUnits += RookCheck * popcount<Max15>(b);
|
attackUnits += RookCheck * popcount<Max15>(b);
|
||||||
|
score -= Checked;
|
||||||
|
}
|
||||||
|
|
||||||
// Enemy bishops safe checks
|
// Enemy bishops safe checks
|
||||||
b = b2 & ei.attackedBy[Them][BISHOP];
|
b = b2 & ei.attackedBy[Them][BISHOP];
|
||||||
if (b)
|
if (b)
|
||||||
|
{
|
||||||
attackUnits += BishopCheck * popcount<Max15>(b);
|
attackUnits += BishopCheck * popcount<Max15>(b);
|
||||||
|
score -= Checked;
|
||||||
|
}
|
||||||
|
|
||||||
// Enemy knights safe checks
|
// Enemy knights safe checks
|
||||||
b = pos.attacks_from<KNIGHT>(ksq) & ei.attackedBy[Them][KNIGHT] & safe;
|
b = pos.attacks_from<KNIGHT>(ksq) & ei.attackedBy[Them][KNIGHT] & safe;
|
||||||
if (b)
|
if (b)
|
||||||
|
{
|
||||||
attackUnits += KnightCheck * popcount<Max15>(b);
|
attackUnits += KnightCheck * popcount<Max15>(b);
|
||||||
|
score -= Checked;
|
||||||
|
}
|
||||||
|
|
||||||
// Finally, extract the king danger score from the KingDanger[]
|
// Finally, extract the king danger score from the KingDanger[]
|
||||||
// array and subtract the score from evaluation.
|
// array and subtract the score from evaluation.
|
||||||
|
|
Loading…
Add table
Reference in a new issue