From 6e4ceb01b54229a389d4fbe7d2fe2e292170a775 Mon Sep 17 00:00:00 2001 From: Fabian Fichter Date: Fri, 1 Mar 2019 23:59:03 +0100 Subject: [PATCH] Extend endgame evaluation for fairy pieces --- src/endgame.cpp | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-) diff --git a/src/endgame.cpp b/src/endgame.cpp index 1e7f2b2..daa72d6 100644 --- a/src/endgame.cpp +++ b/src/endgame.cpp @@ -125,7 +125,14 @@ Value Endgame::operator()(const Position& pos) const { || pos.count(strongSide) ||(pos.count(strongSide) && pos.count(strongSide)) || ( (pos.pieces(strongSide, BISHOP) & ~DarkSquares) - && (pos.pieces(strongSide, BISHOP) & DarkSquares))) + && (pos.pieces(strongSide, BISHOP) & DarkSquares)) + || pos.count(strongSide) >= 2 + ||(pos.count(strongSide) && pos.count(strongSide)) + ||(pos.count(strongSide) && pos.count(strongSide)) + ||(pos.count(strongSide) && pos.count(strongSide) >= 2) + ||(pos.count(strongSide) >= 3 + && ( DarkSquares & pos.pieces(strongSide, FERS)) + && (~DarkSquares & pos.pieces(strongSide, FERS)))) result = std::min(result + VALUE_KNOWN_WIN, VALUE_MATE_IN_MAX_PLY - 1); return strongSide == pos.side_to_move() ? result : -result; -- 1.7.0.4