]> git.sesse.net Git - stockfish/blobdiff - src/evaluate.cpp
Scale down eval for drawish rook endgames.
[stockfish] / src / evaluate.cpp
index 60ec9c72a5b1577ed0976230fcc74c28715aa861..65f7bddc76e3c4f626ac095db897f3cc9458416d 100644 (file)
@@ -782,6 +782,13 @@ namespace {
             else
                 sf = 22 + 3 * pos.count<ALL_PIECES>(strongSide);
         }
+        else if(   pos.non_pawn_material(WHITE) == RookValueMg
+                && pos.non_pawn_material(BLACK) == RookValueMg
+                && !pe->passed_pawns(strongSide)
+                && pos.count<PAWN>(strongSide) - pos.count<PAWN>(~strongSide) <= 1
+                && bool(KingSide & pos.pieces(strongSide, PAWN)) != bool(QueenSide & pos.pieces(strongSide, PAWN))
+                && (attacks_bb<KING>(pos.square<KING>(~strongSide)) & pos.pieces(~strongSide, PAWN)))
+            sf = 36;
         else
             sf = std::min(sf, 36 + 7 * pos.count<PAWN>(strongSide));
     }