diff options
Diffstat (limited to 'common/state.h')
-rw-r--r-- | common/state.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/common/state.h b/common/state.h new file mode 100644 index 0000000..96f171f --- /dev/null +++ b/common/state.h @@ -0,0 +1,42 @@ +#ifndef STATE_H +#define STATE_H + +#include <boost/shared_ptr.hpp> + +#include "tile.h" +#include "action.h" + +class State { + public: + typedef boost::shared_ptr<State> p; + + struct Player { + //! Concealed tiles in hand. + Tiles hand; + //! Open tiles in hand. + Tiles open; + //! Discarded tiles. + Tiles pond; + + template<class Archive> + void serialize(Archive & ar, const unsigned int version) { + ar & hand; + ar & open; + ar & pond; + } + }; + + //! State of players. + Player players[4]; + + //! Possible actions. + Actions possible_actions; + + template<class Archive> + void serialize(Archive & ar, const unsigned int version) { + ar & players; + ar & possible_actions; + } +}; + +#endif
\ No newline at end of file |