/// to a StateInfo object. The move is assumed to be legal. Pseudo-legal
/// moves should be filtered out before this function is called.
-void Position::do_move(Move m, StateInfo& newSt) {
-
- CheckInfo ci(*this);
- do_move(m, newSt, gives_check(m, ci));
-}
-
void Position::do_move(Move m, StateInfo& newSt, bool givesCheck) {
assert(is_ok(m));
// Update the key with the final value
st->key = k;
- // Calculate checkers bitboard (if move is check)
+ // Calculate checkers bitboard (if move gives check)
st->checkersBB = givesCheck ? attackers_to(king_square(them)) & pieces(us) : 0;
sideToMove = ~sideToMove;
}
-/// Position::is_draw() tests whether the position is drawn by material, 50 moves
-/// rule or repetition. It does not detect stalemates.
+/// Position::is_draw() tests whether the position is drawn by 50-move rule
+/// or by repetition. It does not detect stalemates.
bool Position::is_draw() const {