51单片机实现贪食蛇的子程序
--------------------------- /*--------------------------------------------------------- for(i=1;i /*--------------------------------------------------------- #endif
函数功能:蛇吃到食物处理
调用形式:Snake_Feed();
参数:
返回值:迟到食物返回1 没吃到返回0->判断是否死亡
备注:
---------------------------------------------------------*/
void Snake_Feed(void)
{
uint8 i;
if(snake[snake_size].X==food.X&&snake[snake_size].Y==food.Y)
{
//while(food.S==0)
Creat_Food();//重新产生食物
//snake_foodflag=1;
snake_size++;//蛇身加1
snake_score+=BASIC_SCORE;//游戏得分加上加分基数
snake_speed-=BASIC_SPEED;//游戏速度加上加速基数
if(snake_speed<=0)
snake_speed=1;
if(snake_size==SNAKE_SIZE)//此刻蛇长等于最长时候,通关条件
{
for(i=0;i<=SNAKE_SIZE;i++)
{
SetStatusXY(snake[i].X,snake[i].Y,0);//蛇消隐
}
//清屏幕缓存并显示得分
ClearBuf();
{
Display_5x8(0,0,S_);
Display_5x8(6,0,C_);
Display_5x8(12,0,O_);
Display_5x8(18,0,R_);
Display_5x8(24,0,E_);
}
//下32x8像素显示分数(最长52节,吃50个食物通关,50*10=500分最高)
{
Display_5x8(31-6,8,snake_score%10);
Display_5x8(31-12,8,snake_score%100/10);
Display_5x8(31-18,8,snake_score/100);
}
while(1)
{
for(i=0;i<5;i++)
Display();
DelayMs(255);
if(snake_status==0)
break;
}
}
//return 1;
}
//else return 0;
}
函数功能:处理蛇的死亡
调用形式:Snake_Die();
参数:
返回值:
备注:
---------------------------------------------------------*/
void Snake_Die(void)
{
uint16 i;
if(snake[0].X==snake[i].X)
{
if(snake[i].Y==snake[0].Y)//死亡
{
ClearBuf();
Display_5x8(0,0,G_);
Display_5x8(6,0,A_);
Display_5x8(12,0,M_);
Display_5x8(18,0,E_);
Display_5x8(0,8,O_);
Display_5x8(6,8,V_);
Display_5x8(12,8,E_);
Display_5x8(18,8,R_);
for(i=0;i<800;i++)
Display();
ClearBuf();
Display_5x8(31-6,8,snake_score%10);
Display_5x8(31-12,8,snake_score%100/10);
Display_5x8(31-18,8,snake_score/100);
Display_5x8(0,0,S_);
Display_5x8(6,0,C_);
Display_5x8(12,0,O_);
Display_5x8(18,0,R_);
Display_5x8(24,0,E_);
while(1)
{
if(!snake_status)
break;
for(i=0;i<100;i++)
Display();
DelayMs(255);
}
break;//连跳
}
}
}
}
函数功能:游戏进行时
调用形式:Snake_Ing();
参数:
返回值:
备注:
---------------------------------------------------------*/
void Snake_Ing(void)
{
uint8 i;
if(!snake_status)
Snake_Init();
Snake_Step(snake_direct);
Snake_Feed();
Snake_Die();
for(i=0;i
}
51单片机贪食 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)