00001 00028 #ifndef DMN_GAME_H 00029 #define DMN_GAME_H 1 00030 00031 #include <dmn/dmn.h> 00032 #include <dmn/module.h> 00033 #include <dmn/core.h> 00034 00035 #include <list> 00036 00037 namespace dmn 00038 { 00042 class Game: public Module 00043 { 00044 public: 00048 Game(); 00049 00053 virtual ~Game() {} 00054 00062 virtual bool configure(Core *core) = 0; 00063 00072 virtual bool next_hand(ID hand, std::list<ID> *players) = 0; 00073 00081 virtual bool is_first_hand(ID hand) = 0; 00082 00090 virtual void set_hand_winner(ID hand, ID couple, Points points) = 0; 00091 00097 virtual Points points_to_win() = 0; 00098 00104 virtual void score_board(std::list<Score> *score) = 0; 00105 00111 virtual ID next_turn() = 0; 00112 00118 virtual ID winner() = 0; 00119 00125 virtual bool is_finished() = 0; 00126 }; 00127 }; 00128 00129 #endif // DMN_GAME_H