X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fposition.h;h=69bf40b18a5092231821e0af840c6afaee243a1c;hb=43f6b33e50c4bea354b963b0e1e47445c8298299;hp=9aa4c44533cdf5f536b8232ea3a186245120b2e4;hpb=ca677526452823d1fe89543762edb66684e7bdc7;p=stockfish diff --git a/src/position.h b/src/position.h index 9aa4c445..69bf40b1 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 @@ -411,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