bool opposite_bishops() const;
// Doing and undoing moves
+ void do_move(Move m, StateInfo& newSt);
void do_move(Move m, StateInfo& newSt, bool givesCheck);
void undo_move(Move m);
void do_null_move(StateInfo& newSt);
bool is_chess960() const;
Thread* this_thread() const;
uint64_t nodes_searched() const;
- bool is_draw() const;
+ bool is_draw(int ply) const;
int rule50_count() const;
Score psq_score() const;
Value non_pawn_material(Color c) const;
bool chess960;
};
-extern std::ostream& operator<<(std::ostream& os, Position& pos);
+extern std::ostream& operator<<(std::ostream& os, const Position& pos);
inline Color Position::side_to_move() const {
return sideToMove;
pieceList[pc][index[to]] = to;
}
+inline void Position::do_move(Move m, StateInfo& newSt) {
+ do_move(m, newSt, gives_check(m));
+}
+
#endif // #ifndef POSITION_H_INCLUDED