00001 #ifndef HEADER_GOAL_H
00002 #define HEADER_GOAL_H
00003
00004 class Cube;
00005
00006
00007
00008
00009 class Goal {
00010 private:
00011 enum eSATISFY {
00012 SATISFY_TRUE,
00013 SATISFY_FALSE,
00014 SATISFY_IGNORE
00015 };
00016
00017 eSATISFY m_alive;
00018 eSATISFY m_out;
00019 private:
00020 Goal(eSATISFY out, eSATISFY alive);
00021 public:
00022 static Goal noGoal();
00023 static Goal outGoal();
00024 static Goal escapeGoal();
00025 static Goal aliveGoal();
00026
00027 bool isSatisfy(const Cube *model) const;
00028 bool isWrong(const Cube *model) const;
00029 bool shouldGoOut() const;
00030 };
00031
00032 #endif