X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fposition.h;h=1ee247e944d4b9bdfb0882137e5deb4c93b1959b;hp=21ab63fe1d898867aacc7c3fca91ec14d12b86ad;hb=881a9dfb0a8fec3b1472791e2d98415e4a9a182a;hpb=f3cd7002aaf30d4d2c26be21e318fbc15bcba0cb diff --git a/src/position.h b/src/position.h index 21ab63fe..1ee247e9 100644 --- a/src/position.h +++ b/src/position.h @@ -128,6 +128,7 @@ public: bool opposite_bishops() const; // Doing and undoing moves + void do_move(Move m, StateInfo& newSt); void do_move(Move m, StateInfo& newSt, bool givesCheck); void undo_move(Move m); void do_null_move(StateInfo& newSt); @@ -149,7 +150,7 @@ public: bool is_chess960() const; Thread* this_thread() const; uint64_t nodes_searched() const; - bool is_draw() const; + bool is_draw(int ply) const; int rule50_count() const; Score psq_score() const; Value non_pawn_material(Color c) const; @@ -189,7 +190,7 @@ private: bool chess960; }; -extern std::ostream& operator<<(std::ostream& os, Position& pos); +extern std::ostream& operator<<(std::ostream& os, const Position& pos); inline Color Position::side_to_move() const { return sideToMove; @@ -412,4 +413,8 @@ inline void Position::move_piece(Piece pc, Square from, Square to) { pieceList[pc][index[to]] = to; } +inline void Position::do_move(Move m, StateInfo& newSt) { + do_move(m, newSt, gives_check(m)); +} + #endif // #ifndef POSITION_H_INCLUDED