void checkMap(void) { uchar i,j,delete; bit full; full=0; delete=0; for(i=MAXHANG-1;i>0;i--) { if(cubeMap[i][0]==0 && cubeMap[i][1]==0) break; if(cubeMap[i][0]==0xff && cubeMap[i][1]==0xff) { delete++; full=1; for(j=i;j>0;j--) { cubeMap[j][0]=cubeMap[j-1][0]; cubeMap[j][1]=cubeMap[j-1][1]; } i++; cubeMap[0][0]=0; cubeMap[0][1]=0; } } if(full) { if(delete==1) score++; else if(delete==2) score+=4; else if(delete==3) score+=9; else if(delete==4) score+=16; rectangle(); showCubeMap(); if(score<50) speed=1; else if(score<100) speed=2; else if(score<500) speed=3; else if(score<1000) speed=4; else if(score<5000) speed=5; else if(score<10000) speed=6; else if(score<20000) speed=7; else if(score<30000) speed=8; else if(score<40000) speed=9; else if(score<50000) speed=10; else if(score<60000) speed=11; else speed=12; showScoreSpeed(); } }
时间: 2024-04-16 19:28:52 浏览: 47
给定的代码是一个名为`checkMap`的函数,没有返回值(`void`)。
该函数用于检查`cubeMap`数组中的方块,并根据条件执行相应的操作。
以下是代码的逐行解释:
```c
void checkMap(void)
{
uchar i,j,delete;
bit full;
full=0;
delete=0;
for(i=MAXHANG-1;i>0;i--) // 从最后一行开始向上遍历
{
if(cubeMap[i][0]==0 && cubeMap[i][1]==0) // 如果当前行为空行,则跳出循环
break;
if(cubeMap[i][0]==0xff && cubeMap[i][1]==0xff) // 如果当前行是满行
{
delete++; // 增加删除计数器
full=1; // 设置满行标志为1
for(j=i;j>0;j--) // 将当前行及以上的行向下移动一行
{
cubeMap[j][0]=cubeMap[j-1][0];
cubeMap[j][1]=cubeMap[j-1][1];
}
i++; // 将循环变量 i 增加1,使其指向当前行
cubeMap[0][0]=0; // 将最顶部的行设置为空行
cubeMap[0][1]=0;
}
}
if(full) // 如果存在满行
{
if(delete==1) // 如果删除的行数为1
score++; // 分数增加1
else if(delete==2) // 如果删除的行数为2
score+=4; // 分数增加4
else if(delete==3) // 如果删除的行数为3
score+=9; // 分数增加9
else if(delete==4) // 如果删除的行数为4
score+=16; // 分数增加16
rectangle(); // 更新游戏区域的显示
showCubeMap(); // 显示方块地图
if(score<50)
speed=1;
else if(score<100)
speed=2;
else if(score<500)
speed=3;
else if(score<1000)
speed=4;
else if(score<5000)
speed=5;
else if(score<10000)
speed=6;
else if(score<20000)
speed=7;
else if(score<30000)
speed=8;
else if(score<40000)
speed=9;
else if(score<50000)
speed=10;
else if(score<60000)
speed=11;
else
speed=12;
showScoreSpeed();
}
}
```
总结:该函数主要用于检查`cubeMap`数组中的方块,并根据删除的行数和当前分数更新游戏状态。如果存在满行,会根据删除的行数增加分数,并根据当前分数设置速度等级。最后,更新游戏区域的显示,以及显示分数和速度。
阅读全文