mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 08:43:09 +00:00
Minor improvement in eval of unstoppable pawns promoting one ply apart.
Marco's new code for evaluating two unstoppable passed pawns where one pawn promotes a single ply before the other tried to detect cases where the pawn that promotes first could immediately capture the pawn that promotes a ply later, but didn't work in cases where the two pawns are on the same file. An example of this is the following position: 8/8/3K4/2P5/2p5/3k4/8/8 w - - With the new code, such positions are handled correctly.
This commit is contained in:
parent
d8e7ce1863
commit
53f882ff1a
1 changed files with 4 additions and 1 deletions
|
@ -1069,7 +1069,10 @@ namespace {
|
|||
Square winnerQSq = relative_square(winnerSide, make_square(square_file(pawnToGo[winnerSide]), RANK_8));
|
||||
Square loserQSq = relative_square(loserSide, make_square(square_file(pawnToGo[loserSide]), RANK_8));
|
||||
|
||||
Bitboard b = pos.attacks_from<QUEEN>(winnerQSq);
|
||||
Bitboard b = pos.occupied_squares();
|
||||
clear_bit(&b, pawnToGo[winnerSide]);
|
||||
clear_bit(&b, pawnToGo[loserSide]);
|
||||
b = queen_attacks_bb(winnerQSq, b);
|
||||
|
||||
if ( (b & pos.pieces(KING, loserSide))
|
||||
||(bit_is_set(b, loserQSq) && !bit_is_set(ei.attacked_by(loserSide), loserQSq)))
|
||||
|
|
Loading…
Add table
Reference in a new issue