Stockfish, a UCI chess playing engine derived from Glaurung 2.1
Copyright (C) 2004-2008 Tord Romstad (Glaurung author)
Copyright (C) 2008-2015 Marco Costalba, Joona Kiiski, Tord Romstad
- Copyright (C) 2015-2016 Marco Costalba, Joona Kiiski, Gary Linscott, Tord Romstad
+ Copyright (C) 2015-2017 Marco Costalba, Joona Kiiski, Gary Linscott, Tord Romstad
Stockfish is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
// FEN string input/output
Position& set(const std::string& fenStr, bool isChess960, StateInfo* si, Thread* th);
+ Position& set(const std::string& code, Color c, StateInfo* si);
const std::string fen() const;
// Position representation
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 is_chess960() const;
Thread* this_thread() const;
uint64_t nodes_searched() const;
- void set_nodes_searched(uint64_t n);
- 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;
return nodes;
}
-inline void Position::set_nodes_searched(uint64_t n) {
- nodes = n;
-}
-
inline bool Position::opposite_bishops() const {
return pieceCount[W_BISHOP] == 1
&& pieceCount[B_BISHOP] == 1
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