X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fposition.h;h=37d55ed81d3e5f30b462a2accaf7b24c181129ee;hp=0cc6a0ca7a91fdbc4658bbade5eb763233f13007;hb=c081a81daf128048bb4cf4cbdb4d5fc48110bb78;hpb=f25582d4b8860ff9fbe7dcf9873ed2986b1a7ed2 diff --git a/src/position.h b/src/position.h index 0cc6a0ca..37d55ed8 100644 --- a/src/position.h +++ b/src/position.h @@ -58,9 +58,9 @@ struct StateInfo { Score value; Value npMaterial[2]; - PieceType capturedType; Key key; Bitboard checkersBB; + PieceType capturedType; StateInfo* previous; }; @@ -193,7 +193,7 @@ public: template bool is_draw() const; // Number of plies from starting position - int full_moves() const; + int startpos_ply_counter() const; // Other properties of the position bool opposite_colored_bishops() const; @@ -221,7 +221,7 @@ private: void put_piece(Piece p, Square s); void set_castle(int f, Square ksq, Square rsq); void set_castling_rights(char token); - bool move_is_pl_slow(const Move m) const; + bool move_is_legal(const Move m) const; // Helper functions for doing and undoing moves void do_capture_move(Key& key, PieceType capture, Color them, Square to, bool ep); @@ -256,16 +256,16 @@ private: int index[64]; // [square] // Other info - Color sideToMove; Key history[MaxGameLength]; int castleRightsMask[64]; // [square] Square castleRookSquare[16]; // [castleRight] StateInfo startState; - bool chess960; + int64_t nodes; + Color sideToMove; int fullMoves; int threadID; - int64_t nodes; StateInfo* st; + int chess960; // Static variables static Score pieceSquareTable[16][64]; // [piece][square] @@ -428,8 +428,8 @@ inline bool Position::move_is_passed_pawn_push(Move m) const { && pawn_is_passed(c, move_to(m)); } -inline int Position::full_moves() const { - return fullMoves; +inline int Position::startpos_ply_counter() const { + return Max(2 * (fullMoves - 1), 0) + int(sideToMove == BLACK); } inline bool Position::opposite_colored_bishops() const { @@ -449,15 +449,14 @@ inline bool Position::is_chess960() const { inline bool Position::move_is_capture_or_promotion(Move m) const { - assert(m != MOVE_NONE && m != MOVE_NULL); + assert(move_is_ok(m)); return move_is_special(m) ? !move_is_castle(m) : !square_is_empty(move_to(m)); } inline bool Position::move_is_capture(Move m) const { - assert(m != MOVE_NONE && m != MOVE_NULL); - // Note that castle is coded as "king captures the rook" + assert(move_is_ok(m)); return (!square_is_empty(move_to(m)) && !move_is_castle(m)) || move_is_ep(m); }