实现 Restart 游戏状态重置逻辑 完成函数19
This commit is contained in:
@@ -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