你的点赞评论就是对博主最大的鼓励
当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~
🍊自我介绍
Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名“创始团队·嘉宾” 和“内容共创官” ,现在我来为大家介绍一下有关物联网-嵌入式C语言方面的实战项目:俄罗斯方块的相关内容。
🍊方块消行
接下来给大家介绍一下关于方块消行的有关代码及介绍。
方块消行思路
消除满行的方块
void destory_dond_line()
{
int i,j,k;
int flag = 0;
for(i = 0;i < 24;i++)
{
flag = 1;//满行标志,1为满,0为不满
for(j = 0;j < 28;j++)
{
if(matrix[i][j] == 0)//没满
{
flag = 0;
break;
}
if(flag == 1)//说明第i行满了
{
user_score += 10;
if(user_score % 10 == 0)
{
user_level++;
tm/2;
alarm_us(tm);
}
for(k = i;k > 0;k--)//删除i行,整体下移
{
for(j = 0;j < 28;j++)
{
matrix[k][j] = matrix[k - 1][j];//消除满了的那一行之后,上面的图形向下移动
}
print_matrix();
print_score_level();
}
}
}
}
}
输出对应的矩阵函数
void prnt_matrix()
{
int i,j;
for(i = 0;i < 24;i++)
{
for(j = 0;j < 28;j++)
{
if(matrix[i][j] == 0)
{
printf("\033[%d;%dH \033[0m",i + 6,j + 12);
}
else
{
printf("\033[%d;%dH\033[%dm[]\033[0m",i + 6,j + 12,matrix[i][j]);
}
}
}
return ;
}
打印分数函数
void print_score_level()//输出分数,输出等级
{
printf("\033[%d;%dH分数:%d\033[0m",score_y,score_x,user_score);
printf("\033[%d;%dH等级:%d\033[0m",level_y,level_x,user_level);
fflush(NULL);
}