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.hpp42
1 files changed, 25 insertions, 17 deletions
diff --git a/src/Model/Grid.hpp b/src/Model/Grid.hpp
index 21c653a..51168a9 100644
--- a/src/Model/Grid.hpp
+++ b/src/Model/Grid.hpp
@@ -15,38 +15,46 @@
class Grid
{
private:
+ //Members
int m_size;
std::vector<std::vector<int> > m_grid;
+ int m_lastMoveScore;
+ //Private methods
int maxStrLenInGrid();
+
public:
+ //Constructor and Destructor
Grid();
~Grid();
- std::string description();
+ //Defragment and merge methods
+ std::vector<int> rightDefragment(std::vector<int> line);
+ std::vector<int> leftDefragment(std::vector<int> line);
+ std::vector<int> rightMerge(std::vector<int> line);
+ std::vector<int> leftMerge(std::vector<int> line);
+
+ //Swipe methods
+ bool swipeRight();
+ bool swipeLeft();
+ bool swipeUp();
+ bool swipeDown();
+
+ //Helpers
+ bool isFull();
+ bool isOver();
bool isEmpty(int i, int j);
std::tuple<int, int> getRandomEmptyCellCoord();
+ bool compareLines(std::vector<int> line1, std::vector<int> line2);
+ std::vector<int> reverseLine(std::vector<int> line);
+ std::string description();
+ //Getters and Setters
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();
+ int getLastMoveScore();
};