Correct space
This commit is contained in:
parent
40e0b381c1
commit
9f07e3c6bd
2 changed files with 107 additions and 107 deletions
|
@ -14,17 +14,17 @@
|
|||
|
||||
class Game
|
||||
{
|
||||
private:
|
||||
Grid * m_grid;
|
||||
|
||||
public:
|
||||
Game();
|
||||
~Game();
|
||||
|
||||
void play();
|
||||
void pop();
|
||||
void showGrid();
|
||||
bool isOver();
|
||||
private:
|
||||
Grid * m_grid;
|
||||
|
||||
public:
|
||||
Game();
|
||||
~Game();
|
||||
|
||||
void play();
|
||||
void pop();
|
||||
void showGrid();
|
||||
bool isOver();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue