贪吃蛇c语言代码高难,100多行代码的《贪吃蛇》

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

耗费两节课,调试到一个不错的效果。

http://www.lugede.cn

注意:使用前请确保TC文件夹位于D:\TC目录下。

-------

#include

#include

#include

#include

#include

#define ESC 283

#define UP 18432

#define DOWN 20480

#define LEFT 19200

#define RIGHT 19712

void main()

{

int gdrive,gmode;

int an,ano;

int mx=15,my=10,r=38,rs=36,l=3;

int i,j;

int rnd,ex,ey,exx,eyy;

int x,y,xo,yo;

int xx,yy,xxo,yyo;

int lv;

int xs[999],ys[999];

gdrive=DETECT;

initgraph(&gdrive,&gmode,"D:\\TC\\BGI");

srand(time(NULL));

setbkcolor(BLACK);

gotoxy(30,1);

printf("---- Snake v0.1 ----    C 2007 www.lugede.cn");

setcolor(WHITE);

rectangle(26,26,600,410);

start:

/*lv++;

if(lv%2==0) dl/=2;

gotoxy(7,1);

printf("Lv:%d",lv);

*/

rnd=rand();x=rnd%(mx-1)+1;

rnd=rand();y=rnd%(my-1)+1;

rndx1:rnd=rand();ex=rnd%(mx-1)+1;

for(i=1;i

rndy1:rnd=rand();ey=rnd%(my-1)+1;

for(j=1;j

exx=ex*r-10;eyy=ey*r-10;

setfillstyle(1,WHITE);

circle(exx+r/2-1,eyy+r/2-1,rs/2);

floodfill(exx+r/2,eyy+r/2,WHITE);

anjian:

if(bioskey(1))

{

an=bioskey(0);

}

if(an==UP)

{

if(ano==2) y++;

else

{

y--;

ano=1;

}

}

if(an==DOWN)

{

if(ano==1) y--;

else

{

y++;

ano=2;

}

}

if(an==LEFT)

{

if(ano==4) x++;

else

{

x--;

ano=3;

}

}

if(an==RIGHT)

{

if(ano==3) x--;

else

{

x++;

ano=4;

}

}

if(an==ESC) goto end;

along:

delay(99999999);

for(i=2;i

{

if(xs[i]==x&&ys[i]==y&&l>3) goto die;

}

if(x<1||x>mx||y<1||y>my) goto die;

for(j=l;j>1;j--)

{

xs[j]=xs[j-1];

ys[j]=ys[j-1];

}

xs[1]=x;

ys[1]=y;     /*body record*/

if(x==ex && y==ey)

{

l++;

xxo=xo*r-10;yyo=yo*r-10;

setfillstyle(1,BLACK);

bar(xxo,yyo,xxo+rs,yyo+rs);

goto ad;  /*pass clean old body*/

}

xxo=xo*r-10;yyo=yo*r-10;

setfillstyle(1,BLACK);

bar(xxo,yyo,xxo+rs,yyo+rs);

goto bd;

ad: /*remake egg*/

gotoxy(14,1);

printf("Eaten Eggs:%d",l-3);

rndx2:rnd=rand();ex=rnd%(mx-1)+1;

for(i=1;i

rndy2:rnd=rand();ey=rnd%(my-1)+1;

for(j=1;j

exx=ex*r-10;eyy=ey*r-10;

setfillstyle(1,WHITE);

circle(exx+r/2-1,eyy+r/2-1,rs/2);

floodfill(exx+r/2,eyy+r/2,WHITE);

bd:

xx=x*r-10;yy=y*r-10;

setfillstyle(1,GREEN);

bar(xx,yy,xx+rs,yy+rs);

xs[1]=x;ys[1]=y;

xo=xs[l];yo=ys[l];

goto anjian;

die:

setfillstyle(1,RED);

for(i=1;i<=l;i++)

{

bar(xs[i]*r-10,ys[i]*r-10,xs[i]*r-10+rs,ys[i]*r-10+rs);

}

gotoxy(30,15);

printf("You got %d eggs!",l-3);

getch();

end:

an=getch();

if(an!=27) goto end;

closegraph();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值