summaryrefslogtreecommitdiff
path: root/src/Model/Grid.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Model/Grid.cpp')
-rw-r--r--src/Model/Grid.cpp192
1 files changed, 96 insertions, 96 deletions
diff --git a/src/Model/Grid.cpp b/src/Model/Grid.cpp
index ca93955..87f294e 100644
--- a/src/Model/Grid.cpp
+++ b/src/Model/Grid.cpp
@@ -3,7 +3,7 @@
Grid::Grid(int size)
{
- m_size = size;
+ m_size = size;
m_table = std::vector<std::vector<Cell*> >(size);
for(int i = 0 ; i < size ; i++)
{
@@ -39,118 +39,118 @@ void Grid::show()
bool Grid::isEmpty(int i, int j)
{
- if (i >= 0 && i < m_size && j >= 0 && j < m_size)
- return m_table[i][j]->isEmpty();
-
- return false;
+ if (i >= 0 && i < m_size && j >= 0 && j < m_size)
+ return m_table[i][j]->isEmpty();
+
+ return false;
}
bool Grid::gridIsFull()
{
- bool isFull = true;
-
- for (int i = 0; i < m_size && isFull; i++)
- {
- for (int j = 0; j < m_size && isFull; j++)
- {
- if (m_table[i][j]->isEmpty())
- isFull = false;
- }
- }
-
- return isFull;
+ bool isFull = true;
+
+ for (int i = 0; i < m_size && isFull; i++)
+ {
+ for (int j = 0; j < m_size && isFull; j++)
+ {
+ if (m_table[i][j]->isEmpty())
+ isFull = false;
+ }
+ }
+
+ return isFull;
}
void Grid::setCell(int i, int j, Cell *cell)
{
- if (i >= 0 && i < m_size && j >= 0 && j < m_size)
- {
- delete m_table[i][j];
- m_table[i][j] = cell;
- }
+ if (i >= 0 && i < m_size && j >= 0 && j < m_size)
+ {
+ delete m_table[i][j];
+ m_table[i][j] = cell;
+ }
}
void Grid::move(Direction direction)
{
- switch (direction)
- {
- case UP:
-
- break;
-
- case DOWN:
- break;
-
- case LEFT:
- break;
-
- case RIGHT:
- break;
-
- default:
- break;
- }
+ switch (direction)
+ {
+ case UP:
+
+ break;
+
+ case DOWN:
+ break;
+
+ case LEFT:
+ break;
+
+ case RIGHT:
+ break;
+
+ default:
+ break;
+ }
}
void Grid::moveDown()
{/*
for (int i = 0 ; i < m_size; i++)
{
- // If the column is full, check the next column
- bool columnIsFull = true;
-
- for (int j = 0; j < m_size; j++)
- {
- if (m_table[j][i]->isEmpty())
- {
- columnIsFull = false;
- break;
- }
- }
-
- while (!columnIsFull)
- {
- // Calculate the first line to merge
- int firstLine = m_size - 1;
- while (m_table[firstLine][i]->isEmpty() && firstLine > 0)
- firstLine--;
- if (firstLine == 0)
- break;
-
- // Calculate the second line to merge
- int secondLine = firstLine - 1;
- while (m_table[secondLine][i]->isEmpty() && secondLine > 0)
- secondLine--;
-
- // If there is only one element, pull it down
- if (m_table[secondLine][i]->isEmpty() && firstLine != m_size - 1)
- {
- Cell * originalCell = m_table[firstLine][i];
- Cell * finalCell = m_table[m_size-1][i];
-
- m_table[firstLine][i] = finalCell;
- m_table[m_size-1][i] = originalCell;
-
- break;
- }
-
- // If there is only one element which is at the full bottom, break the loop
- if (m_table[secondLine][i]->isEmpty())
- break;
-
- // If there are two "good" elements, begin the merge process
- Cell * cell1 = m_table[firstLine][i];
- Cell * cell2 = m_table[secondLine][i];
-
- Cell * mergedCell = NULL;
-
- // If the two cells are the same, merge them
- if (cell1->equals(cell2))
- {
- int value = std::stoi(cell1->getValue());
- mergedCell = new Cell(std::to_string(value));
- }
- }
- }*/
+ // If the column is full, check the next column
+ bool columnIsFull = true;
+
+ for (int j = 0; j < m_size; j++)
+ {
+ if (m_table[j][i]->isEmpty())
+ {
+ columnIsFull = false;
+ break;
+ }
+ }
+
+ while (!columnIsFull)
+ {
+ // Calculate the first line to merge
+ int firstLine = m_size - 1;
+ while (m_table[firstLine][i]->isEmpty() && firstLine > 0)
+ firstLine--;
+ if (firstLine == 0)
+ break;
+
+ // Calculate the second line to merge
+ int secondLine = firstLine - 1;
+ while (m_table[secondLine][i]->isEmpty() && secondLine > 0)
+ secondLine--;
+
+ // If there is only one element, pull it down
+ if (m_table[secondLine][i]->isEmpty() && firstLine != m_size - 1)
+ {
+ Cell * originalCell = m_table[firstLine][i];
+ Cell * finalCell = m_table[m_size-1][i];
+
+ m_table[firstLine][i] = finalCell;
+ m_table[m_size-1][i] = originalCell;
+
+ break;
+ }
+
+ // If there is only one element which is at the full bottom, break the loop
+ if (m_table[secondLine][i]->isEmpty())
+ break;
+
+ // If there are two "good" elements, begin the merge process
+ Cell * cell1 = m_table[firstLine][i];
+ Cell * cell2 = m_table[secondLine][i];
+
+ Cell * mergedCell = NULL;
+
+ // If the two cells are the same, merge them
+ if (cell1->equals(cell2))
+ {
+ int value = std::stoi(cell1->getValue());
+ mergedCell = new Cell(std::to_string(value));
+ }
+ }
+ }*/
}