43 #ifndef DUMBO_CORE_GAME_STATE_H
44 #define DUMBO_CORE_GAME_STATE_H
46 #include <dumbo/core/move.h>
60 virtual std::vector<M> LegalMoves()
const = 0;
63 virtual M RandomMove()
const = 0;
67 virtual bool NextState(
const M& move,
GameState* next_state)
const = 0;
71 virtual bool IsTerminal(
double* win)
const = 0;
74 bool IsMyTurn()
const {
return my_turn_; }
77 virtual bool operator==(
const GameState<M>& rhs)
const = 0;
80 virtual void Render()
const = 0;
83 GameState(
bool my_turn =
true) : my_turn_(my_turn) {}
89 static std::random_device rd_;
90 static std::default_random_engine rng_;