-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathStates.h
174 lines (167 loc) · 4.32 KB
/
States.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
#ifndef HEADER_STATECLASS
#define HEADER_STATECLASS
#include "Timers.h"
//#include "arduino.h"
#include <Wire.h>
#include "Buttons.h"
#include "Sodaq_DS3231.h"
#include <idDHT11.h>
#include <TimeLib.h>
#include "graphics.h"
#include <complex.h>
class State{
public:
Button * butts[6];
bool needsUpdate = false;
void initia(Button*, Button*, Button*, Button*, Button*, Button*);
virtual void draw(byte, byte, byte, byte, byte, byte, bool*, Adafruit_SSD1306)=0;
virtual void load(void)=0;
virtual void unload(void)=0;
virtual void leave(void)=0;
virtual void enter(void)=0;
};
class ClockState : public State{
public:
int lastS;
void draw(byte, byte, byte, byte, byte, byte, bool*, Adafruit_SSD1306);
void load(void);
void unload(void);
void leave(void);
void enter(void);
};
class TimerState : public State{
public:
CompoundTimer timerTimer;
bool timerOn=false;
bool timerSelected=false;
void draw(byte, byte, byte, byte, byte, byte, bool*, Adafruit_SSD1306);
void load(void);
void unload(void);
void leave(void);
void enter(void);
};
class PictureState : public State{
public:
void draw(byte, byte, byte, byte, byte, byte, bool*, Adafruit_SSD1306);
void load(void);
void unload(void);
void leave(void);
void enter(void);
};
class GOState : public State{
public:
int SelectedCoord[2] = {4, 4};
bool deletingStonesBoard[9][9];
bool liberties = false;
byte getStone(int, int);
bool boardRepeat();
void checkForStone(int, int);
void deleteStones(int, int);
byte boardStones [9][9];
byte lastBoardStones [9][9];
GOState();
bool WhiteSelected = false;
void displayBoard(Adafruit_SSD1306);
void draw(byte, byte, byte, byte, byte, byte, bool*, Adafruit_SSD1306);
void load(void);
void unload(void);
void leave(void);
void enter(void);
};
class Bullet{
public:
int x;
int y;
bool alive = false;
bool isSpike;
void Move(void);
};
class Barrier{
public:
int x;
int y;
byte health;
unsigned char graphic[16];
void spawn(int, int);
void damage(void);
};
class Alien{
public:
void moveDown(void);
void moveLeft(void);
void moveRight(void);
void spawn(int, int);
int x;
int y;
bool alive = false;
};
const int NUMOFALIENS = 30;
class SIState : public State{
public:
int playerX;
int playerY;
int omegaX;
int score;
Alien aliens[NUMOFALIENS];
Barrier barriers[3];
Bullet spikes[40];
Bullet bullets[10];
Timer alienMoveTimer;
Timer alienChangeMoveTimer;
Timer alienAdvanceTimer;
Timer alienShootTimer;
Timer omegaTimer;
bool movingLeft;
int subState;
void draw(byte, byte, byte, byte, byte, byte, bool*, Adafruit_SSD1306);
void load(void);
void unload(void);
void leave(void);
void enter(void);
void shoot(void);
};
class HumidityState : public State{
public:
int humidity;
void updateHumidity(void);
void draw(byte, byte, byte, byte, byte, byte, bool*, Adafruit_SSD1306);
void load(void);
void unload(void);
void leave(void);
void enter(void);
};
class TempState : public State{
public:
int temperature;
int CPUtemperature;
void updateTemp(void);
void draw(byte, byte, byte, byte, byte, byte, bool*, Adafruit_SSD1306);
void load(void);
void unload(void);
void leave(void);
void enter(void);
};
class MandelbrotState : public State{
public:
__complex__ float currentZ;
int currentX;
int currentY;
int timeSpent;
int maxTime;
bool image[64][128];
bool getInSet(int, int);
void draw(byte, byte, byte, byte, byte, byte, bool*, Adafruit_SSD1306);
void load(void);
void unload(void);
void leave(void);
void enter(void);
};
class BlankState : public State{
public:
void draw(byte, byte, byte, byte, byte, byte, bool*, Adafruit_SSD1306);
void load(void);
void unload(void);
void leave(void);
void enter(void);
};
#endif