1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-05-01 17:19:36 +00:00

Retire is_mate()

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba 2012-01-10 11:57:06 +01:00
parent bede30e7a6
commit c19ea4b000
3 changed files with 10 additions and 24 deletions

View file

@ -147,13 +147,13 @@ const string move_to_san(Position& pos, Move m) {
} }
} }
// The move gives check? We don't use pos.move_gives_check() here if (pos.move_gives_check(m, CheckInfo(pos)))
// because we need to test for a mate after the move is done. {
StateInfo st; StateInfo st;
pos.do_move(m, st); pos.do_move(m, st);
if (pos.in_check()) san += MoveList<MV_LEGAL>(pos).size() ? "+" : "#";
san += pos.is_mate() ? "#" : "+";
pos.undo_move(m); pos.undo_move(m);
}
return san; return san;
} }

View file

@ -1499,7 +1499,7 @@ bool Position::is_draw() const {
return true; return true;
// Draw by the 50 moves rule? // Draw by the 50 moves rule?
if (st->rule50 > 99 && !is_mate()) if (st->rule50 > 99 && (!in_check() || MoveList<MV_LEGAL>(*this).size()))
return true; return true;
// Draw by repetition? // Draw by repetition?
@ -1531,15 +1531,6 @@ template bool Position::is_draw<false>() const;
template bool Position::is_draw<true>() const; template bool Position::is_draw<true>() const;
/// Position::is_mate() returns true or false depending on whether the
/// side to move is checkmated.
bool Position::is_mate() const {
return in_check() && !MoveList<MV_LEGAL>(*this).size();
}
/// Position::init() is a static member function which initializes at startup /// Position::init() is a static member function which initializes at startup
/// the various arrays used to compute hash keys and the piece square tables. /// the various arrays used to compute hash keys and the piece square tables.
/// The latter is a two-step operation: First, the white halves of the tables /// The latter is a two-step operation: First, the white halves of the tables

View file

@ -185,14 +185,9 @@ public:
Value non_pawn_material(Color c) const; Value non_pawn_material(Color c) const;
Score pst_delta(Piece piece, Square from, Square to) const; Score pst_delta(Piece piece, Square from, Square to) const;
// Game termination checks
bool is_mate() const;
template<bool SkipRepetition> bool is_draw() const;
// Plies from start position to the beginning of search
int startpos_ply_counter() const;
// Other properties of the position // Other properties of the position
template<bool SkipRepetition> bool is_draw() const;
int startpos_ply_counter() const;
bool opposite_colored_bishops() const; bool opposite_colored_bishops() const;
bool has_pawn_on_7th(Color c) const; bool has_pawn_on_7th(Color c) const;
bool is_chess960() const; bool is_chess960() const;