summaryrefslogtreecommitdiff
path: root/src/Model/Grid.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Model/Grid.hpp')
-rw-r--r--src/Model/Grid.hpp53
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