// Number of plies since the last non-reversible move
int rule_50_counter() const;
+ int startpos_ply_counter() const;
+
// Other properties of the position
bool opposite_colored_bishops() const;
bool has_pawn_on_7th(Color c) const;
// Reset the gamePly variable to 0
void reset_game_ply();
+ void inc_startpos_ply_counter();
+
// Position consistency check, for debugging
bool is_ok(int* failedStep = NULL) const;
int castleRightsMask[64];
StateInfo startState;
File initialKFile, initialKRFile, initialQRFile;
+ int startPosPlyCounter;
int threadID;
StateInfo* st;
}
inline bool Position::square_is_empty(Square s) const {
- return piece_on(s) == EMPTY;
+ return piece_on(s) == NO_PIECE;
}
inline bool Position::square_is_occupied(Square s) const {
return st->rule50;
}
+inline int Position::startpos_ply_counter() const {
+
+ return startPosPlyCounter;
+}
+
inline bool Position::opposite_colored_bishops() const {
return piece_count(WHITE, BISHOP) == 1