Skip to content

Commit

Permalink
Remove a drawing rule from KBPsK function
Browse files Browse the repository at this point in the history
The rule can be incorrect if the attacking king is
well placed e.g. 8/6K1/8/8/7k/1B6/7P/8 w - - 0 1

bench: 8279065
  • Loading branch information
ceebo authored and mcostalba committed Oct 14, 2013
1 parent d9be003 commit 0c68971
Showing 1 changed file with 2 additions and 13 deletions.
15 changes: 2 additions & 13 deletions src/endgame.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -407,19 +407,8 @@ ScaleFactor Endgame<KBPsK>::operator()(const Position& pos) const {
Square kingSq = pos.king_square(weakSide);

if ( opposite_colors(queeningSq, bishopSq)
&& abs(file_of(kingSq) - pawnFile) <= 1)
{
// The bishop has the wrong color, and the defending king is on the
// file of the pawn(s) or the adjacent file. Find the rank of the
// frontmost pawn.
Square pawnSq = frontmost_sq(strongSide, pawns);

// If the defending king has distance 1 to the promotion square or
// is placed somewhere in front of the pawn, it's a draw.
if ( square_distance(kingSq, queeningSq) <= 1
|| relative_rank(weakSide, kingSq) <= relative_rank(weakSide, pawnSq))
return SCALE_FACTOR_DRAW;
}
&& square_distance(queeningSq, kingSq) <= 1)
return SCALE_FACTOR_DRAW;
}

// All pawns on same B or G file? Then potential draw
Expand Down

0 comments on commit 0c68971

Please sign in to comment.