mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 16:53:09 +00:00
Simplify evaluation for blocked passers.
This is a functional simplification of the evaluation code for blocked passers. I've also changed a few variable names for clarity. STC LLR: 2.94 (-2.94,2.94) {-1.50,0.50} Total: 141984 W: 27450 L: 27466 D: 87068 Ptnml(0-2): 2414, 16511, 33175, 16461, 2431 https://tests.stockfishchess.org/tests/view/5ec4001b05aa4bc72d9759e7 LTC LLR: 2.93 (-2.94,2.94) {-1.50,0.50} Total: 30536 W: 3966 L: 3885 D: 22685 Ptnml(0-2): 216, 2841, 9073, 2922, 216 https://tests.stockfishchess.org/tests/view/5ec4bd0d377121ac09e101b7 Closes https://github.com/official-stockfish/Stockfish/pull/2690 Bench: 4704681
This commit is contained in:
parent
b36a1fa1b4
commit
20ceeac8b3
1 changed files with 10 additions and 13 deletions
|
@ -591,25 +591,22 @@ namespace {
|
||||||
return std::min(distance(pos.square<KING>(c), s), 5);
|
return std::min(distance(pos.square<KING>(c), s), 5);
|
||||||
};
|
};
|
||||||
|
|
||||||
Bitboard b, bb, squaresToQueen, unsafeSquares, candidatePassers, leverable;
|
Bitboard b, bb, squaresToQueen, unsafeSquares, blockedPassers, helpers;
|
||||||
Score score = SCORE_ZERO;
|
Score score = SCORE_ZERO;
|
||||||
|
|
||||||
b = pe->passed_pawns(Us);
|
b = pe->passed_pawns(Us);
|
||||||
|
|
||||||
candidatePassers = b & shift<Down>(pos.pieces(Them, PAWN));
|
blockedPassers = b & shift<Down>(pos.pieces(Them, PAWN));
|
||||||
if (candidatePassers)
|
if (blockedPassers)
|
||||||
{
|
{
|
||||||
// Can we lever the blocker of a candidate passer?
|
helpers = shift<Up>(pos.pieces(Us, PAWN))
|
||||||
leverable = shift<Up>(pos.pieces(Us, PAWN))
|
|
||||||
& ~pos.pieces(Them)
|
& ~pos.pieces(Them)
|
||||||
& (~attackedBy2[Them] | attackedBy[Us][ALL_PIECES])
|
& (~attackedBy2[Them] | attackedBy[Us][ALL_PIECES]);
|
||||||
& (~(attackedBy[Them][KNIGHT] | attackedBy[Them][BISHOP])
|
|
||||||
| (attackedBy[Us ][KNIGHT] | attackedBy[Us ][BISHOP]));
|
|
||||||
|
|
||||||
// Remove candidate otherwise
|
// Remove blocked candidate passers that don't have help to pass
|
||||||
b &= ~candidatePassers
|
b &= ~blockedPassers
|
||||||
| shift<WEST>(leverable)
|
| shift<WEST>(helpers)
|
||||||
| shift<EAST>(leverable);
|
| shift<EAST>(helpers);
|
||||||
}
|
}
|
||||||
|
|
||||||
while (b)
|
while (b)
|
||||||
|
|
Loading…
Add table
Reference in a new issue