有可能delay()函数里的数字大家要自己调整下.基本的结构因为完善了.
#include "graphics.h"
#include "stdlib.h"
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define DOWN 0x5000
#define UP 0x4800
#define ESC 0x011b
int lose=0,i,j;
int gd=DETECT,gr,x[200]=,y[200]=;
int key,t=1,n=4,s=0,xx,yy,yes=1;
int score[8]=;
begain()/*开始画面*/
for(i=40;i<=450;i+=10)
}
over()/*结束的话*/
win()/*胜利*/
doscore()/*处理分数*/
}
printscore(int n)/*输出成绩*/
}
}
main()
yes=0;
}
if(yes==0)/*画要吃的东西*/
for(i=n-1;i>0;i--)/*每个往前移动*/
if(t==1)/*right*/
x[0]+=10;
else if(t==2)/*left*/
x[0]-=10;
else if(t==3)/*up*/
y[0]-=10;
else if(t==4)/*down*/
y[0]+=10;
for(i=3;i<n;i++)
if(x[i]==x[0]&&y[i]==y[0])/*蛇的身体是否自己接触*/
if(x[0]<55x[0]>595y[0]<55y[0]>455)/*失败条件*/
if(lose)
break;
if(x[0]==xx&&y[0]==yy&&n<200)/*长身体*/
else if(t==2)
else if(t==3)
else if(t==4)
yes=1;
}
if(n==199)
setcolor(4);/*画出来*/
for(i=0;i<n;i++)
rectangle(x[i],y[i],x[i]+10,y[i]-10);
delay(5000);
setcolor(0);
for(i=0;i<n;i++)
rectangle(x[i],y[i],x[i]+10,y[i]-10);
}
if(lose)
break;
key=bioskey(0);/*按键的影响*/
if(key==ESC)
break;
else if(key==UP&&t!=4)
t=3;
else if(key==RIGHT&&t!=2)
t=1;
else if(key==LEFT&&t!=1)
t=2;
else if(key==DOWN&&t!=3)
t=4;
}
getch();
closegraph();
}
(出处:清风软件下载学院)