发布时间 : 星期日 文章ARM课程设计报告 - 图文更新完毕开始阅读ba3af20dbfd5b9f3f90f76c66137ee06eff94e7c
ARM系统设计实践课程报告
{
if(sl!=0) {
Set_Display(++SX,SY,1);
Set_Display(sx,sy-(sl-1),0);
if((foodsignal==1)&&(sl==2)) //目的是在在转弯过程中,吃到食物,蛇长变长
{
SL=SL+1; sl=sl-2; } else sl--; } else break; } }
else if(JD==4) //向右运动时 {
JD=0;
while(1) //正在向上转弯 {
if(sl!=0) {
Set_Display(++SX,SY,1); Judge_Wall();
Set_Display(sx,sy-(sl-1),0);
if((foodsignal==1)&&(sl==2)) //目的是在在转弯过程中,吃到食物,蛇长变长
{
SL=SL+1; sl=sl-2; } else sl--; } else break; } }
while(1) //转向完毕后直线行进 {
12
ARM系统设计实践课程报告
Set_Display(++SX,SY,1); //蛇头向前一点 Judge_Wall();
Judge_Food(); //直线运动,判断食物 Set_Display(SX-SL,SY,0); //蛇尾灭一个点
switch( Key_Num ) //检测是否向左或者向右的按键 {
case KEY3: //键3表示向左 Key_Num = 0; LeftMove(); break;
case KEY4: //键4表示向右 Key_Num = 0; RightMove(); break; default:
Key_Num = 0; break; } } }
//////////////贪吃蛇向左转向函数//////////////////
void LeftMove() {
Judge_Direction(); sx=SX; sy=SY; sl=SL;
if(JD==1) //向上运动时 {
JD=0;
while(1) //正在向左转弯 {
if(sl!=0) {
Set_Display(SX,--SY,1);
Set_Display(sx-(sl-1),sy,0); //运动时蛇头坐标再变化
if((foodsignal==1)&&(sl==2)) //目的是在在转弯过程中,吃到食物,蛇长变长 {
SL=SL+1; sl=sl-2;
13
ARM系统设计实践课程报告
} else sl--; } else break; } }
else if(JD==2) //向下运动时 {
JD=0;
while(1) //正在向左转弯 {
if(sl!=0) {
Set_Display(SX,--SY,1);
Set_Display(sx+(sl-1),sy,0);
if((foodsignal==1)&&(sl==2)) //目的是在在转弯过程中,吃到食物,蛇长变长
{
SL=SL+1; sl=sl-2; } else sl--; } else break; } }
while(1) //转向完毕后直线行进 {
Set_Display(SX,--SY,1); //蛇头向前一点
Judge_Food(); //直线运动,判断食物 Set_Display(SX,SY+SL,0); //蛇尾灭一个点
switch( Key_Num ) //检测是否向上或者向下的按键 {
case KEY1: //键1表示向上 Key_Num = 0; UpMove(); break;
case KEY2: //键2表示向下 Key_Num = 0; DownMove();
14
ARM系统设计实践课程报告
break; default:
Key_Num = 0; break; } } }
//////////////贪吃蛇向下转向函数//////////////////
void DownMove() {
Judge_Direction(); sx=SX; sy=SY; sl=SL;
if(JD==3) //向左运动时 {
JD=0;
while(1) //正在向下转弯 {
if(sl!=0) {
Set_Display(--SX,SY,1);
Set_Display(sx,sy+(sl-1),0);
if((foodsignal==1)&&(sl==2)) //目的是在在转弯过程中,吃到食物,蛇长变长
{
SL=SL+1; sl=sl-2; } else sl--; } else break; } }
else if(JD==4) //向右运动时 {
JD=0;
15