bool opposite_bishops() const;
// Doing and undoing moves
- void do_move(Move m, StateInfo& st, bool givesCheck);
+ 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& st);
+ void do_null_move(StateInfo& newSt);
void undo_null_move();
// Static Exchange Evaluation
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