Score value;
Value npMaterial[2];
- PieceType capturedType;
Key key;
Bitboard checkersBB;
+ PieceType capturedType;
StateInfo* previous;
};
template<bool SkipRepetition> 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;
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]
&& 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 {