实现 Restart 游戏状态重置逻辑 完成函数19
This commit is contained in:
@@ -37,7 +37,7 @@
|
||||
- [x] `14. Fixing` - `src/source/TetrisLogic.cpp`
|
||||
- [x] `17. GameOver` - `src/source/TetrisLogic.cpp`
|
||||
- [x] `18. ComputeTarget` - `src/source/TetrisLogic.cpp`
|
||||
- [ ] `19. Restart` - `src/source/TetrisLogic.cpp`
|
||||
- [x] `19. Restart` - `src/source/TetrisLogic.cpp`
|
||||
|
||||
## 第五阶段:消行与得分逻辑
|
||||
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 131 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
@@ -360,7 +360,34 @@ void ComputeTarget()
|
||||
point = originalPoint;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 重置整个游戏状态,开始新的一局。
|
||||
*
|
||||
* 该函数会清空工作区中的所有固定方块数据,重置分数、结束标记和暂停标记,
|
||||
* 并重新初始化当前方块、下一方块、旋转状态以及生成位置。
|
||||
* 最后会重新计算一次当前方块的预测落点。
|
||||
*/
|
||||
void Restart()
|
||||
{
|
||||
// TODO(作业19): 重置游戏状态。
|
||||
for (int i = 0; i < nGameHeight; i++)
|
||||
{
|
||||
for (int j = 0; j < nGameWidth; j++)
|
||||
{
|
||||
workRegion[i][j] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
tScore = 0;
|
||||
gameOverFlag = false;
|
||||
suspendFlag = false;
|
||||
targetFlag = true;
|
||||
|
||||
type = rand() % 7;
|
||||
nType = rand() % 7;
|
||||
state = 0;
|
||||
point.x = 3;
|
||||
point.y = 0;
|
||||
target = point;
|
||||
|
||||
ComputeTarget();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user