X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fposition.h;h=989282772a1cf765e354eca643166fa74ab8d809;hp=e74a3c713128939a1a2d9e558a5c1e0345de4139;hb=0d9a9f5e985c13852cf9f29767e95f295bb29575;hpb=073eed590edf992ed3aeb6c754cb0b3b394fe79d diff --git a/src/position.h b/src/position.h index e74a3c71..98928277 100644 --- a/src/position.h +++ b/src/position.h @@ -76,6 +76,7 @@ public: // FEN string input/output Position& set(const std::string& fenStr, bool isChess960, StateInfo* si, Thread* th); + Position& set(const std::string& code, Color c, StateInfo* si); const std::string fen() const; // Position representation @@ -127,9 +128,10 @@ public: bool opposite_bishops() const; // Doing and undoing moves - void do_move(Move m, StateInfo& st, bool givesCheck); + 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& st); + void do_null_move(StateInfo& newSt); void undo_null_move(); // Static Exchange Evaluation @@ -148,7 +150,6 @@ public: bool is_chess960() const; Thread* this_thread() const; uint64_t nodes_searched() const; - void set_nodes_searched(uint64_t n); bool is_draw() const; int rule50_count() const; Score psq_score() const; @@ -189,7 +190,7 @@ private: bool chess960; }; -extern std::ostream& operator<<(std::ostream& os, const Position& pos); +extern std::ostream& operator<<(std::ostream& os, Position& pos); inline Color Position::side_to_move() const { return sideToMove; @@ -341,10 +342,6 @@ inline uint64_t Position::nodes_searched() const { return nodes; } -inline void Position::set_nodes_searched(uint64_t n) { - nodes = n; -} - inline bool Position::opposite_bishops() const { return pieceCount[W_BISHOP] == 1 && pieceCount[B_BISHOP] == 1 @@ -416,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