diff options
Diffstat (limited to 'src/Model/Grid.hpp')
| -rw-r--r-- | src/Model/Grid.hpp | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/Model/Grid.hpp b/src/Model/Grid.hpp new file mode 100644 index 0000000..21c653a --- /dev/null +++ b/src/Model/Grid.hpp @@ -0,0 +1,53 @@ +#ifndef DEF_GRID +#define DEF_GRID + +/* Grid.h + * Defines the class Grid + * A grid contains a table of cells the game will be set on + * Creators : krilius, manzerbredes + * Date : 29/04/2015 */ + +#include <iostream> +#include <sstream> +#include <vector> +#include <tuple> + +class Grid +{ + private: + int m_size; + std::vector<std::vector<int> > m_grid; + + int maxStrLenInGrid(); + public: + Grid(); + ~Grid(); + + std::string description(); + bool isEmpty(int i, int j); + std::tuple<int, int> getRandomEmptyCellCoord(); + + bool setCell(std::tuple<int, int> coord, int value); + bool setCell(int i, int j, int value); + + std::vector<int> swipeLine(std::vector<int> line); + std::vector<int> defragmentLine(std::vector<int> line); + std::vector<int> mergeLine(std::vector<int> line); + + std::vector<int> getCol(int col); + + bool isFull(); + bool isOver(); + + void setCol(int col, std::vector<int> colVect); + std::vector<int> reverseLine(std::vector<int> line); + + //Moves + void swipeRight(); + void swipeLeft(); + void swipeUp(); + void swipeDown(); +}; + + +#endif |
