diff options
Diffstat (limited to 'GameField.hpp')
-rw-r--r-- | GameField.hpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/GameField.hpp b/GameField.hpp new file mode 100644 index 0000000..1d2af31 --- /dev/null +++ b/GameField.hpp @@ -0,0 +1,37 @@ +#ifndef LPG_GAMEFIELD_H +#define LPG_GAMEFIELD_H + +enum states { + G_EMPTY = 0, + G_NONE, + G_DRAW, + G_XPLAYER = 10, + G_OPLAYER = -10 +}; + +class GameField { + // optional: + int field[3][3]; + int free; + int win_length; + + // non-optional: + int state; + int who_move; +public: + GameField() : field{0}, free(9), win_length(3), state(G_NONE), + who_move(G_XPLAYER) { } + ~GameField() { } + int GetState() { return state; } + + bool CanMove(int x, int y); + void Move(int x, int y); + +private: + void UpdateState(); + int ScanRows(); + int ScanCols(); + int ScanDiags(); +}; + +#endif /* LPG_GAMEFIELD_H */ |