《C语言最简洁的贪吃蛇源代码》由会员分享,可在线阅读,更多相关《C语言最简洁的贪吃蛇源代码(7页珍藏版)》请在金锄头文库上搜索。
1、C语言最简洁的贪吃蛇源代码.txt每天早上起床都要看一遍“福布斯”富翁排行榜,如果上面没有我的名字,我就去上班。谈钱不伤感情,谈感情最他妈伤钱。我诅咒你一辈子买方便面没有调料包。#include#include#include#include#include#defineSTATIC0#defineTRUE1#defineFALSE0#defineUP1#defineRIGHT2#defineDOWN3#defineLEFT4#defineVK_LEFT0x4b00/*上下左右键的值*/#defineVK_RIGHT0x4d00#defineVK_DOWN0x5000#defineVK_UP0
2、x4800#defineVK_ESC0x011bintboard2222;intsnakelength=0;structsnakepublic:intx=0;inty=0;intdirection;body20;snakefood;voidmakefood();/*产生一个食物*/inteatfood();/*蛇吃掉食物*/voidright();/*上下左右的函数了*/voiddown();voidleft();voidup();voidgetdirection();/*判断蛇的方向*/move(snake*body)/*让蛇动起来*/intx=body0.x,y=body0.y;if(bo
3、dy-direction=RIGHT&boardyx+1!=1)right();elseif(body-direction=DOWN&boardy+1x!=1)down();elseif(body-direction=LEFT&boardyx-1!=1)left();elseif(body-direction=UP&boardy-1x!=1)up();return0;voidprint()/*在屏幕上显示蛇*/inti,j,x=0,y=0;for(i=1;i21;i+)for(j=1;j21;j+)boardij=0;for(i=0;i20;i+)x=bodyi.x;y=bodyi.y;boa
4、rdyx=1;boardfood.yfood.x=2;for(i=1;i21;i+)for(j=1;j21;j+)if(boardij=1)setfillstyle(SOLID_FILL,WHITE);bar(j*15,i*15,j*15+13,i*15+13);if(boardij=0)setfillstyle(SOLID_FILL,BLACK);bar(j*15,i*15,j*15+13,i*15+13);if(boardij=2)setfillstyle(SOLID_FILL,RED);bar(j*15,i*15,j*15+13,i*15+13);main(intsecond=0)int
5、gdriver=CGAC0,gmode;initgraph(&gdriver,&gmode,c:tcbgi);/*BGI文件夹的路径,我的是c:tcbgi,这里得自己改下*/randomize();inti,j;intflag;longtime=100000;for(i=0;i21;i+)for(j=0;j21;j+)boardij=0;for(i=0;i22;i+)board0i=1;board21i=1;boardi0=1;boardi21=1;snakelength=3;body0.x=3,body0.y=2,body0.direction=RIGHT;body1.x=2,body1.y
6、=2;body2.x=1,body2.y=2;makefood();print();getch();for(i=0;i30000;i+)move(&body0);getdirection();flag=eatfood();if(flag=TRUE)print();makefood();print();for(j=0;j0;i-)bodyi.x=bodyi-1.x;bodyi.y=bodyi-1.y;body0.x+;voiddown()inti;for(i=snakelength-1;i0;i-)bodyi.x=bodyi-1.x;bodyi.y=bodyi-1.y;body0.y+;void
7、left()inti;for(i=snakelength-1;i0;i-)bodyi.x=bodyi-1.x;bodyi.y=bodyi-1.y;body0.x-;voidup()inti;for(i=snakelength-1;i0;i-)bodyi.x=bodyi-1.x;bodyi.y=bodyi-1.y;body0.y-;voidgetdirection()intkey=0;if(bioskey(1)!=0)key=bioskey(0);switch(key)caseVK_UP:if(body0.direction!=DOWN)body0.direction=UP;break;case
8、VK_RIGHT:if(body0.direction!=LEFT)body0.direction=RIGHT;break;caseVK_DOWN:if(body0.direction!=UP)body0.direction=DOWN;break;caseVK_LEFT:if(body0.direction!=RIGHT)body0.direction=LEFT;break;caseVK_ESC:exit(0);voidmakefood()inti,j;food.x=0;food.y=0;print();food.x=random(20);food.y=random(20);for(;)if(
9、boardfood.yfood.x!=0)food.x=random(20);food.y=random(20);elsebreak;food.direction=body0.direction;boardfood.yfood.x=2;inteatfood()inti=FALSE;intx=body0.x,y=body0.y;if(body0.direction=UP&boardy-1x=2)snakelength+;for(i=snakelength-1;i0;i-)bodyi.x=bodyi-1.x;bodyi.y=bodyi-1.y;body0.x=food.x;body0.y=food
10、.y;food.x=0;food.y=0;i=TRUE;if(body0.direction=DOWN&boardy+1x=2)snakelength+;for(i=snakelength-1;i0;i-)bodyi.x=bodyi-1.x;bodyi.y=bodyi-1.y;body0.x=food.x;body0.y=food.y;food.x=0;food.y=0;i=TRUE;if(body0.direction=LEFT&boardyx-1=2)snakelength+;for(i=snakelength-1;i0;i-)bodyi.x=bodyi-1.x;bodyi.y=bodyi-1.y;body0.x=food.x;body0.y=food.y;food.x=0;food.y=0;i=TRUE;if(body0.direction=RIGHT&boardyx+1=2)snakelength+;for(i=snakelength-1;i0;i-)bodyi.x=bodyi-1.x;bodyi.y=bodyi-1.y;body0.x=food.x;body0.y=food.y;food.x=0;food.y=0;i=TRUE;returni;