X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fposition.h;h=fa812effff71584c94db59aad1019f51868ee599;hp=2361132fac4e5596cbb08ca369c7fd7364c0d614;hb=e385f194e970f0675bd4c3509bca4a6c81b6df5e;hpb=e06a117d5e78ec4edc051f2b161d36559f784d37 diff --git a/src/position.h b/src/position.h index 2361132f..fa812eff 100644 --- a/src/position.h +++ b/src/position.h @@ -56,7 +56,10 @@ struct StateInfo { Bitboard checkSquares[PIECE_TYPE_NB]; }; -// In a std::deque references to elements are unaffected upon resizing +/// A list to keep track of the position states along the setup moves (from the +/// start position to the position just before the search starts). Needed by +/// 'draw by repetition' detection. Use a std::deque because pointers to +/// elements are not invalidated upon list resizing. typedef std::unique_ptr> StateListPtr; @@ -136,7 +139,7 @@ public: void undo_null_move(); // Static Exchange Evaluation - bool see_ge(Move m, Value value) const; + bool see_ge(Move m, Value threshold = VALUE_ZERO) const; // Accessing hash keys Key key() const; @@ -146,11 +149,9 @@ public: // Other properties of the position Color side_to_move() const; - Phase game_phase() const; int game_ply() const; bool is_chess960() const; Thread* this_thread() const; - uint64_t nodes_searched() const; bool is_draw(int ply) const; int rule50_count() const; Score psq_score() const; @@ -158,7 +159,7 @@ public: Value non_pawn_material() const; // Position consistency check, for debugging - bool pos_is_ok(int* failedStep = nullptr) const; + bool pos_is_ok() const; void flip(); private: @@ -184,7 +185,6 @@ private: int castlingRightsMask[SQUARE_NB]; Square castlingRookSquare[CASTLING_RIGHT_NB]; Bitboard castlingPath[CASTLING_RIGHT_NB]; - uint64_t nodes; int gamePly; Color sideToMove; Thread* thisThread; @@ -349,10 +349,6 @@ inline int Position::rule50_count() const { return st->rule50; } -inline uint64_t Position::nodes_searched() const { - return nodes; -} - inline bool Position::opposite_bishops() const { return pieceCount[W_BISHOP] == 1 && pieceCount[B_BISHOP] == 1