- Fixed gui bug where unchecking extremely low undid low
[crack-attack.git] / src / ComputerPlayerAI.h
blobb5facaf2af2f5a57a728062aae4d28ec42e504d0
1 #ifndef cpai_h_
2 #define cpai_h_
4 #include "GarbageQueue.h"
6 class GarbageQueue;
8 class ComputerPlayerAI {
9 private:
10 int last_time;
11 int last_shatter_height;
13 protected:
14 enum AI_STATE { AI_WAITING, AI_SHATTERING } state;
15 GarbageQueue *queue;
17 virtual int baseSteps();
18 virtual int stateSteps();
19 virtual int garbageShatterDelay ( );
21 virtual void shatter();
23 public:
25 ComputerPlayerAI();
26 ~ComputerPlayerAI(){}
28 int alarm ( );
29 void resetAlarm ( );
30 GarbageQueue *garbageQueue ( );
31 virtual GarbageQueue *garbageAmount ( );
33 virtual bool determineLoss ( );
34 virtual int lossHeight();
37 class EasyAI :public ComputerPlayerAI {
38 public:
39 EasyAI() { }
40 ~EasyAI(){}
42 virtual int lossHeight();
43 protected:
44 virtual int baseSteps();
47 class MediumAI :public ComputerPlayerAI {
48 public:
49 MediumAI(){}
50 ~MediumAI(){}
52 virtual int lossHeight();
53 protected:
54 virtual int baseSteps();
57 class HardAI :public ComputerPlayerAI {
58 public:
59 HardAI(){}
60 ~HardAI(){}
62 virtual int lossHeight();
63 protected:
64 virtual int baseSteps();
68 #endif