ARM课程设计报告 - 图文 联系客服

发布时间 : 星期日 文章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