From fced9757c2e0c3eb7bedac6113cb0b2676e3124b Mon Sep 17 00:00:00 2001 From: Karma Riuk Date: Thu, 6 Feb 2025 22:10:47 +0100 Subject: [PATCH] made figuring whether the board is terminal easier --- cpp/src/model/board/board.hpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cpp/src/model/board/board.hpp b/cpp/src/model/board/board.hpp index 263a756..2657c35 100644 --- a/cpp/src/model/board/board.hpp +++ b/cpp/src/model/board/board.hpp @@ -25,6 +25,7 @@ struct Board { Board make_move(Move) const; std::string to_fen() const; bool is_check_for(int8_t) const; + bool insufficient_material() const; std::vector all_legal_moves() const; @@ -37,8 +38,9 @@ struct Board { } bool is_terminal() const { - return is_checkmate_for(White) || is_checkmate_for(Black) - || is_stalemate_for(White) || is_stalemate_for(Black); + return insufficient_material() || white_to_play + ? is_checkmate_for(White) || is_stalemate_for(White) + : is_checkmate_for(Black) || is_stalemate_for(Black); } Piece piece_at(int8_t idx) const {