00001 #ifndef HEADER_LEVELCOUNTDOWN_H 00002 #define HEADER_LEVELCOUNTDOWN_H 00003 00004 class LevelStatus; 00005 class RoomAccess; 00006 class Room; 00007 class GameState; 00008 class CountAdvisor; 00009 00010 /** 00011 * Countdowns finished or wrong state. 00012 */ 00013 class LevelCountDown { 00014 private: 00015 int m_countdown; 00016 const RoomAccess *m_access; 00017 LevelStatus *m_levelStatus; 00018 private: 00019 void setCountDown(const CountAdvisor *advisor); 00020 public: 00021 LevelCountDown(const RoomAccess *access); 00022 void fillStatus(LevelStatus *status) { m_levelStatus = status; } 00023 void reset(); 00024 00025 bool countDown(const CountAdvisor *advisor); 00026 bool isFinishedEnough() const; 00027 bool isWrongEnough() const; 00028 00029 void saveSolution(); 00030 GameState *createNextState(); 00031 }; 00032 00033 #endif