mirror of
https://github.com/sockspls/badfish
synced 2025-07-12 03:59:15 +00:00
parent
58c9fbacc7
commit
0901e12102
2 changed files with 15 additions and 1 deletions
|
@ -577,6 +577,18 @@ Value do_evaluate(const Position& pos, Value& margin) {
|
||||||
|
|
||||||
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.pieces();
|
||||||
|
|
||||||
|
assert(b);
|
||||||
|
|
||||||
|
if (!more_than_one(b) && (b & pos.pieces(Them)))
|
||||||
|
score += ThreatBonus[Piece][type_of(pos.piece_on(lsb(b)))];
|
||||||
|
}
|
||||||
|
|
||||||
// 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)
|
||||||
|
@ -687,7 +699,8 @@ Value do_evaluate(const Position& pos, Value& margin) {
|
||||||
& ~ei.attackedBy[Them][0];
|
& ~ei.attackedBy[Them][0];
|
||||||
|
|
||||||
if (undefendedMinors)
|
if (undefendedMinors)
|
||||||
score += UndefendedMinorPenalty;
|
score += more_than_one(undefendedMinors) ? UndefendedMinorPenalty * 2
|
||||||
|
: UndefendedMinorPenalty;
|
||||||
|
|
||||||
// Enemy pieces not defended by a pawn and under our attack
|
// Enemy pieces not defended by a pawn and under our attack
|
||||||
weakEnemies = pos.pieces(Them)
|
weakEnemies = pos.pieces(Them)
|
||||||
|
|
|
@ -1343,6 +1343,7 @@ split_point_start: // At split points actual search starts from here
|
||||||
Bitboard b = (enemies ^ ksq) & newAtt & ~oldAtt;
|
Bitboard b = (enemies ^ ksq) & newAtt & ~oldAtt;
|
||||||
while (b)
|
while (b)
|
||||||
{
|
{
|
||||||
|
// Note that here we generate illegal "double move"!
|
||||||
if (futilityBase + PieceValue[EG][pos.piece_on(pop_lsb(&b))] >= beta)
|
if (futilityBase + PieceValue[EG][pos.piece_on(pop_lsb(&b))] >= beta)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue