俄罗斯方块移动2D阵列
Tetris shifting 2D array
我目前正在用C++编写一个俄罗斯方块,我正处于最后一个阶段,当它满了时,我需要删除一行。一旦一块掉落,它就会存储在布尔数组网格[20][10]中。例如,我检查哪一行是满的(或true),如果是,我调用方法deleteRow,其中n是行数:
void Grid::deleteRow(int n)
{
for (j = 0; j < WIDTH; j++)
{
grid[n][j] = false;
}
}
一旦该行被删除,我调用一个方法moveRowDown:
void Grid::moveRowDown()
{
for (i = 0; i < HEIGHT; i++)
{
for (j = 0; j < WIDTH; j++)
{
grid[i+1][j]=grid[i][j];
}
}
}
所以这种方法不起作用,所有的碎片都消失了。我知道我错过了逻辑。感谢您的提前帮助!
它们会消失,因为您将第一个空行复制到第二个,然后复制到第三个等等。您需要重写Grid::moveRowDown()中的第一个循环,以便从玻璃底部开始工作:
for (i = HEIGHT-2; i>=0; i--)
相关文章:
- C++动态安全 2D 交错阵列
- 库特<<恩德尔;不适用于打印 2D 阵列
- 具有可变尺寸的 C++ 2D 阵列
- 如何通过Boost.MPI发送2d Boost.MultiArray的子阵列?
- 如何从2d Boost.MultiArray获取子阵列?
- 基于用户输入的 2D 动态阵列
- 2D 动态阵列被视为特洛伊木马?
- 如何遍历 2D 阵列?
- 超级对撞机2D阵列:生成嵌套:包装/尺寸问题
- 动态 2D 阵列.为什么分段错误?
- 尝试使用2D阵列
- 分配给阵列时出现分段错误?黑客排名 2D 阵列 - DS.
- 如何将1D阵列访问为2D阵列
- 分配/访问2d阵列,使得2d子块是连续的
- 重新分配2D阵列并删除旧阵列
- 不使用新的动态2D阵列
- 我正在为2D阵列参数而挣扎
- 特征和巨大的密集 2D 阵列
- 全球字符阵列(2D)
- 如何将内存映像分配给DLIB阵列2d或映像