void undo_null_move();
// Static Exchange Evaluation
- bool see_ge(Move m, Value value = VALUE_ZERO) const;
+ bool see_ge(Move m, Value threshold = VALUE_ZERO) const;
// Accessing hash keys
Key key() const;
// 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;
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:
int castlingRightsMask[SQUARE_NB];
Square castlingRookSquare[CASTLING_RIGHT_NB];
Bitboard castlingPath[CASTLING_RIGHT_NB];
- uint64_t nodes;
int gamePly;
Color sideToMove;
Thread* thisThread;
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