]> git.sesse.net Git - stockfish/blobdiff - src/position.h
Threefold repetition detection
[stockfish] / src / position.h
index 21ab63fe1d898867aacc7c3fca91ec14d12b86ad..1ee247e944d4b9bdfb0882137e5deb4c93b1959b 100644 (file)
@@ -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