Wrong Color Bishop and Rook Pawn

From Chessprogramming wiki
Revision as of 10:05, 22 September 2018 by GerdIsenberg (talk | contribs)
Jump to: navigation, search

Home * Evaluation * Game Phases * Endgame * Wrong Color Bishop and Rook Pawn

Wrong Color Bishop and Rook Pawn is one of typical drawn fortress positions that need to be encoded in the evaluation function, as search would not evaluate them properly. When the stronger side has a pawn on the "a" or "h" file and the bishop can never cover the promotion square because of its "wrong" square color, then the position is drawn when the defending king stands on the promotion square or controls it. The stronger side cannot get more than a stalemate.

In order to detect possibilities of exchanging into such an ending, a code should say something to the effect: if all the features described above are present and the side without a bishop has a couple of pawns more, but nominally still is at a disadvantage, call it a draw.

There is also a position drawn despite having a nominally good bishop: white pawn on a2, black pawn on a3, white king on b1 or c2, and a dark-squared bishop for Black. This works even if all the pieces are moved one file to the right, as there is still no way to outflank white [1].

Too far

A position where White to move wins:

    
    
    
    
    
    
    
    
        
        
       
       
       
       
        
        
        
        
     ♚  
       ♙
    ♗   
     ♔  
        
        
8/8/5k2/7P/4B3/5K2/8/8 w - - 0 1

Uri's rule

Uri Blass proposed a rule [2] applying Chebyshev distance to the promotion square, considering Tempo, implementation by Gerd Isenberg:

dl = distance(lonesomeKing, promoSquare) + (side2move != loneSome); /* considers tempo */
dw = distance(King, promoSquare);
dp = min (distance(MostAdvancedPawn, promoSquare), 5); /* considers double push */
dp += File(lonesomeKing) == File(MostAdvancedPawn); /* makes dl < dp always true in case of blocked pawn */
if (dl < dw && dl < dp ) draw = true;

Forum Posts

2000 ...

2010 ...

External Links

References

  1. Implementation note: In order for this heuristic to work, program must be able to recognize position as a draw even after the stronger side sacrifices a bishop
  2. Re: King, rook pawn and wrong bishop endgames by Uri Blass, CCC, October 18, 2000
  3. see game 17.1 in TCEC Season 5 Superfinal, Stockfish vs. Komodo, November 25, 2013, where Komodo had the knowledge, but Stockfish apparently not

Up one Level