c语言贪吃蛇图形界面设计,我刚学2个月,试着写了个贪吃蛇,学着用图形界面写小游戏,对水平提高...

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

else {moveto(lastheadx,lastheady);putimage(lastheadx,lastheady,p2,COPY_PUT);} /*掩盖当蛇为一节时的足迹*/

if(snake.x[0]==foodx&&snake.y[0]==foody)

{

score1+=100;score(); /*更新分数*/

snake.node+=1;

if(snake.node-1>1){snake.x[snake.node-1]=lasttailx;snake.y[snake.node-1]=lasttaily;}

else {snake.x[snake.node-1]=lastheadx;snake.y[snake.node-1]=lastheady;}

food();

}

for(i=1;i

{if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0])gameover();}

}

void move()

{

setbkcolor(GREEN);

setcolor(RED);

cleardevice();

score();

snake.node=1;

startxy();

food();

while(1)

{

while(!kbhit())

{

while(snake.direction==1&&snake.y[0]>=14)

{ lastheadx=snake.x[0];lastheady=snake.y[0];

snake.y[0]-=14;

printsnake();

delay(speed);

if(snake.y[0]==0)

gameover();

break;

}

while(snake.direction==2&&snake.y[0]<=448)

{

lastheadx=snake.x[0];lastheady=snake.y[0];

snake.y[0]+=14;

printsnake();

delay(speed);

if(snake.y[0]==462)

gameover(); break;

}

while(snake.direction==3&&snake.x[0]>=14)

{

lastheadx=snake.x[0];lastheady=snake.y[0];

snake.x[0]-=14;

printsnake();

delay(speed);

if(snake.x[0]==0)

gameover(); break;

}

while(snake.direction==4&&snake.x[0]<616)

{

lastheadx=snake.x[0];lastheady=snake.y[0];

snake.x[0]+=14;

printsnake();

delay(speed);

if(snake.x[0]==616)

gameover();

break;

}

}

key=bioskey(0);

switch(key)

{

case UP:snake.direction=(snake.direction==2?2:1);break;

case DOWN:snake.direction=(snake.direction==1?1:2); break;

case LEFT:snake.direction=(snake.direction==4?4:3); break;

case RIGHT:snake.direction=(snake.direction==3?3:4); break;

case ESC:exit(0);

}

}

}

main()

{

int gdriver=DETECT,gmode,x,y;

registerbgidriver(EGAVGA_driver);

initgraph(&gdriver,&gmode,"");

setbkcolor(GREEN);

setcolor(RED);

cleardevice();

rectangle(0,0,14,14);setfillstyle(1,4); floodfill(5,5,4);

p1=malloc(imagesize(0,0,14,14));

getimage(0,0,14,14,p1);

rectangle(50,50,64,64); setfillstyle(1,14);floodfill(55,55,4);

p3=malloc(imagesize(50,50,64,64));

getimage(50,50,64,64,p3);

p2=malloc(imagesize(100,100,114,114));

getimage(100,100,114,114,p2);

p4=malloc(imagesize(100,200,105,600));

getimage(100,100,200,600,p4);

move();

getch();

closegraph();

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值