#ifndef GAME_H #define GAME_H #include #include #include #include "wall.h" #include "client.h" #include "../common/action.h" #include "gamevariant.h" #include "standard.h" class Game : public boost::enable_shared_from_this { public: typedef boost::shared_ptr p; static p create(Client::p player_1, Client::p player_2, Client::p player_3, Client::p player_4); ~Game(); private: std::vector players; int waiting_players; Game(Client::p player_1, Client::p player_2, Client::p player_3, Client::p player_4); GameVariant *ruleset; //! Handle Ready message from player. void handle_ready(); //! Start the game. void start(); void round_start(); void round_update(); void handle_action(Action action); void round_end(); }; #endif