
求用c语言编写的贪吃蛇程序
2019-03-12 17:01:43
微信公开课小程序热门讨论「求用c语言编写的贪吃蛇程序#」最新回复-includestdio.h#includegraphics.h#includestdlib.h#includedos.h/*引用的库函数*/#defineLEFT0x4b00#defineRIGHT0x4d00#defineDOWN0x5000#defineUP0x4800#defineESC0x011b/*宏定义键名*/#defineN200inti,key;intlevel;/*游戏等级*/intscore=0;/*得分*/intgamespeed;/*游戏速度*/structFood{intx;/*食物的横坐标*/inty;/*食物的纵坐标*/intyes;/*判断是否要出现食物的变量*/}food;/*食物的结构体*/structSnake{intx[N];inty[N];intnode;/*蛇的节数*/intdirection;/*蛇移动方向*/intlife;/*蛇的生命,0活着,1死亡*/}snake;/*蛇的结构体*/voidChoicelevle(void);/*选择游戏等级*/voidInit(void);/*图形驱动*/voidClose(void);/*图形结束*/voidDRAW(void);/*游戏区域*/voidGameOver(void);/*结束游戏*/voidGamePlay(void);/*玩游戏具体过程*/voidPrScore(void);/*输出成绩*//*主函数*/voidmain(void){Init();/*图形驱动*/Choicelevle();/*选择游戏等级*/DRAW();/*游戏区域*/GamePlay();/*玩游戏具体过程*/Close();/*图形结束*/}/*图形驱动*/voidInit(void){intgd=DETECT,gm;initgraph(&gd,&gm,\\turboc2);/*初始化图形系统*/cleardevice();/*清除图形界面*/}/*选择游戏等级*/voidChoicelevle(void){charname[20];setcolor(YELLOW);settextstyle(0,0,6);outtextxy(150,150,Snake);setcolor(GREEN);settextstyle(0,0,1);outtextxy(200,250,pleaseputinyourEnglishname:);outtextxy(200,270,Choicelevlefrom19.);outtextxy(300,320,name:yangzilong);/*制作人姓名*/outtextxy(300,350,number:0902060226);/*制作人学号*/outtextxy(300,380,class:computerscience0602);/*制作人班级*/getch();printf(pleaseputinyourname:);gets(name);printf(pleasechoicelevle:);scanf(%d,&level);gamespeed=100000400*level300*level*level;if(level9||level1){cleardevice();/*清除图形界面*/setcolor(YELLOW);/*设置字体颜色*/settextstyle(0,0,2);/*设置字体类型*/outtextxy(150,200,levelinputerror);/*显示文本*/getch();level=1;}}voidDRAW(void){cleardevice();/*清屏*/setcolor(2);setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设置线型*/rectangle(45,45,465,325);}/*玩游戏具体过程*/voidGamePlay(void){setcolor(5);setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设置线型*/randomize();/*随机数发生器*/food.yes=1;/*1表示需要出现新食物,0表示已经存在食物*/snake.life=0;/*活着*/snake.direction=1;/*方向往右*/snake.x[0]=320;snake.y[0]=240;/*蛇头*/snake.x[1]=330;snake.y[1]=240;/*蛇的第二节位置*/snake.node=3;/*节数*/PrScore();/*输出得分*/while(1)/*可以重复玩游戏,压ESC键结束*/{while(!kbhit())/*在没有按键的情况下,蛇自己移动身体*/{if(food.yes==1)/*需要出现新食物*/{food.x=rand()%360+70;food.y=rand()%250+60;while(food.x%10!=0)/*食物随机出现后必须让食物能够在整格内,这样才可以让蛇吃到*/food.x++;while(food.y%10!=0)food.y++;food.yes=0;/*画面上有食物了*/}if(food.yes==0)/*画面上有食物了就要显示*/{setcolor(GREEN);rectangle(food.x,food.y,food.x+10,food.y10);}for(i=snake.node1;i0;i)/*蛇的每个环节往前移动*/{snake.x[i]=snake.x[i1];snake.y[i]=snake.y[i1];}/*1,2,3,4表示右,左,上,下四个方向,通过这个控制来移动蛇头*/switch(snake.direction){case1:snake.x[0]+=10;break;case2:snake.x[0]=10;break;case3:snake.y[0]=10;break;case4:snake.y[0]+=10;break;}for(i=3;isnake.node;i++)/*从蛇的第四节开始判断是否撞到自己了,因为蛇头为两节,第三节不可能拐过来*/{if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0]){GameOver();/*显示失败*/snake.life=1;/*蛇死*/break;}}/*如果蛇头碰到墙壁,蛇头从对面墙出来*/if(snake.x[0]50){snake.x[0]=450;/*如果蛇头越过左边界,则从右边界进入*/snake.y[0]=snake.y[0];/*纵坐标不变*/for(i=snake.node1;i0;i){snake.x[i]=snake.x[i1];snake.y[i]=snake.y[i1];/*蛇的其他节数向前推进*/}{setfillstyle(SOLID_FILL,0);/*设置填充模式和颜色,0表示黑色*/bar(50,55,455,315);/*bar是表示填充的范围的函数*/}}elseif(snake.x[0]450){snake.x[0]=50;/*如果蛇头越过右边界,则蛇头从左边界进入*/snake.y[0]=snake.y[0];/*纵坐标不变*/for(i=snake.node1;i0;i){snake.x[i]=snake.x[i1];snake.y[i]=snake.y[i1];/*蛇的其他节数向前推进*/}{setfillstyle(SOLID_FILL,0);/*设置填充模式和颜色,0表示黑色*/bar(50,55,455,315);/*bar是表示填充的范围的函数*/}}elseif(snake.y[0]60){snake.y[0]=320;/*如果蛇头越过上边界,则从下边界进入*/snake.x[0]=snake.x[0];/*横坐标不变*/for(i=snake.node1;i0;i){snake.x[i]=snake.x[i1];snake.y[i]=snake.y[i1];/*蛇的其他节数向前推进*/}{setfillstyle(SOLID_FILL,0);/*设置填充模式和颜色,0表示黑色*/bar(50,55,455,315);/*bar是表示填充的范围的函数*/}}elseif(snake.y[0]320){snake.y[0]=60;/*如果蛇头越过下边界,则从上边界进入*/snake.x[0]=snake.x[0];/*横坐标不变*/for(i=snake.node1;i0;i){snake.x[i]=snake.x[i1];snake.y[i]=snake.y[i1];/*蛇的其他节数向前推进*/}{setfillstyle(SOLID_FILL,0);/*设置填充模式和颜色,0表示黑色*/bar(50,55,455,315);/*bar是表示填充的范围的函数*/}}if(snake.life==1)/*如果蛇死就跳出内循环,重新开始*/break;if(snake.x[0]==food.x&&snake.y[0]==food.y)/*吃到食物以后*/{setcolor(0);/*把画面上的食物东西去掉*/rectangle(food.x,food.y,food.x+10,food.y10);/*用当前线型和颜色画一矩形*/snake.x[snake.node]=20;snake.y[snake.node]=20;/*新的一节先放在看不见的位置,下次循环就取前一节的位置*/snake.node++;/*蛇的身体长一节*/food.yes=1;/*画面上需要出现新的食物*/score+=10;/*每吃掉一食物,得分累加10分*/if(score%100==0){level++;gamespeed=100000400*level300*level*level;/*每吃掉10食物提升一级,速度加快*/PrScore();/*输出新得分*/setcolor(YELLOW);/*设置字体颜色*/settextstyle(0,0,4);/*设置字体类型*/outtextxy(150,200,LEVELUP);/*显示文本*/if(level==10){level=1,gamespeed=100000400*level300*level*level;}delay(6000000);delay(6000000);delay(6000000);delay(6000000);delay(6000000);delay(6000000);delay(6000000);bar(50,55,455,315);/*bar是表示填充的范围的函数*/}PrScore();/*输出新得分*/}setcolor(4);/*画出蛇*/for(i=0;isnake.node;i++)rectangle(snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]10);delay(gamespeed);/*控制游戏速度*/setcolor(0);rectangle(snake.x[snake.node1],snake.y[snake.node1],snake.x[snake.node1]+10,snake.y[snake.node1]10);}/*endwhile(!kbhit)*//*用黑色去除蛇的的最后一节*/if(snake.life==1)/*如果蛇死就跳出循环*/break;key=bioskey(0);/*接收按键*/if(key==ESC)/*按ESC键退出*/break;elseif(key==UP&&snake.direction!=4)/*判断是否往相反的方向移动*/snake.direction=3;elseif(key==RIGHT&&snake.direction!=2)snake.direction=1;elseif(key==LEFT&&snake.direction!=1)snake.direction=2;elseif(key==DOWN&&snake.direction!=3)snake.direction=4;}/*endwhile(1)*/}/*游戏结束*/voidGameOver(void){cleardevice();/*清屏*/PrScore();setcolor(RED);/*设置字体颜色*/settextstyle(0,0,4);/*设置字体类型*/outtextxy(200,200,GAMEOVER);/*显示文本*/getch();}/*输出成绩及游戏等级*/voidPrScore(void){charstr1[20];/*设置字符型数组*/setfillstyle(SOLID_FILL,0);bar(50,15,390,35);/*填充矩形框*/setcolor(6);/*设置文本颜色*/settextstyle(0,0,2);/*设置数组显示位置*/sprintf(str1,score%dlevel%d,score,level);/*显示数组内容*/outtextxy(55,20,str1);setcolor(YELLOW);/*设置字体颜色*/settextstyle(0,0,2);/*设置字体类型*/outtextxy(250,400,EXIT=ESC);/*显示文本*/}voidClose(void){closegraph();}
#defineN200#includegraphics.h#includestdlib.h#includedos.h#defineLEFT0x4b00#defineRIGHT0x4d00#defineDOWN0x5000#defineUP0x4800#defineEsc0x011binti,key;intscore=0;intgamespeed=50000;structFood{intx;inty;intyes;}food;structSnake{intx[N];inty[N];intnode;intdirection;intlife;}snake;voidInit();voidClose();voidDrawK();voidGamePlay();voidGameOver();voidPrScore();voidmain(){Init();DrawK();GamePlay();Close();}voidInit(){intgd=DETECT,gm;initgraph(&gd,&gm,F:tuoboc2);/*此处为turboc的路径,读者可以根据自己的电脑而改*/cleardevice();}voidDrawK(){setbkcolor(LIGHTGREEN);setcolor(11);setlinestyle(SOLID_LINE,0,THICK_WIDTH);for(i=50;i=600;i+=10){rectangle(i,40,i+10,49);rectangle(i,451,i+10,460);}for(i=40;i=450;i+=10){rectangle(50,i,59,i+10);rectangle(601,i,610,i+10);}}voidGamePlay(){randomize();food.yes=1;snake.life=0;snake.direction=1;snake.x[0]=100;snake.y[0]=100;snake.x[1]=110;snake.y[1]=100;snake.node=2;PrScore();while(1){while(!kbhit()){if(food.yes==1){food.x=rand()00+60;food.y=rand()%350+60;while(food.x%10!=0)food.x++;while(food.y%10!=0)food.y++;food.yes=0;}if(food.yes==0){setcolor(GREEN);rectangle(food.x,food.y,food.x+10,food.y-10);}for(i=snake.node-1;i0;i--){snake.x[i]=snake.x[i-1];snake.y[i]=snake.y[i-1];}switch(snake.direction){case1:snake.x[0]+=10;break;case2:snake.x[0]-=10;break;case3:snake.y[0]-=10;break;case4:snake.y[0]+=10;break;}for(i=3;isnake.node;i++){if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0]){GameOver();snake.life=1;break;}}if(snake.x[0]55||snake.x[0]595||snake.y[0]55||snake.y[0]455){GameOver();snake.life=1;}if(snake.life==1)break;if(snake.x[0]==food.x&&snake.y[0]==food.y){setcolor(0);rectangle(food.x,food.y,food.x+10,food.y-10);snake.x[snake.node]=-20;snake.y[snake.node]=-20;snake.node++;food.yes=1;score+=10;PrScore();}setcolor(4);for(i=0;isnake.node;i++)rectangle(snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]-10);delay(gamespeed);setcolor(0);rectangle(snake.x[snake.node-1],snake.y[snake.node-1],snake.x[snake.node-1]+10,snake.y[snake.node-1]-10);}if(snake.life==1)break;key=bioskey(0);if(key==Esc)break;elseif(key==UP&&snake.direction!=4)snake.direction=3;elseif(key==RIGHT&&snake.direction!=2)snake.direction=1;elseif(key==LEFT&&snake.direction!=1)snake.direction=2;elseif(key==DOWN&&snake.direction!=3)snake.direction=4;}}voidGameOver(){cleardevice();PrScore();setcolor(RED);settextstyle(3,0,4);outtextxy(100,100,Mengmeng,iloveyou!);getch();}voidPrScore(){charstr[10];setfillstyle(SOLID_FILL,YELLOW);bar(50,15,220,35);setcolor(6);settextstyle(0,0,2);sprintf(str,score:%d,score);outtextxy(55,20,str);}voidClose(){getch();closegraph();} 更多有关「求用c语言编写的贪吃蛇程序#」的疑问请扫码关注微信公开课+小程序!
#defineN200#includegraphics.h#includestdlib.h#includedos.h#defineLEFT0x4b00#defineRIGHT0x4d00#defineDOWN0x5000#defineUP0x4800#defineEsc0x011binti,key;intscore=0;intgamespeed=50000;structFood{intx;inty;intyes;}food;structSnake{intx[N];inty[N];intnode;intdirection;intlife;}snake;voidInit();voidClose();voidDrawK();voidGamePlay();voidGameOver();voidPrScore();voidmain(){Init();DrawK();GamePlay();Close();}voidInit(){intgd=DETECT,gm;initgraph(&gd,&gm,F:tuoboc2);/*此处为turboc的路径,读者可以根据自己的电脑而改*/cleardevice();}voidDrawK(){setbkcolor(LIGHTGREEN);setcolor(11);setlinestyle(SOLID_LINE,0,THICK_WIDTH);for(i=50;i=600;i+=10){rectangle(i,40,i+10,49);rectangle(i,451,i+10,460);}for(i=40;i=450;i+=10){rectangle(50,i,59,i+10);rectangle(601,i,610,i+10);}}voidGamePlay(){randomize();food.yes=1;snake.life=0;snake.direction=1;snake.x[0]=100;snake.y[0]=100;snake.x[1]=110;snake.y[1]=100;snake.node=2;PrScore();while(1){while(!kbhit()){if(food.yes==1){food.x=rand()00+60;food.y=rand()%350+60;while(food.x%10!=0)food.x++;while(food.y%10!=0)food.y++;food.yes=0;}if(food.yes==0){setcolor(GREEN);rectangle(food.x,food.y,food.x+10,food.y-10);}for(i=snake.node-1;i0;i--){snake.x[i]=snake.x[i-1];snake.y[i]=snake.y[i-1];}switch(snake.direction){case1:snake.x[0]+=10;break;case2:snake.x[0]-=10;break;case3:snake.y[0]-=10;break;case4:snake.y[0]+=10;break;}for(i=3;isnake.node;i++){if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0]){GameOver();snake.life=1;break;}}if(snake.x[0]55||snake.x[0]595||snake.y[0]55||snake.y[0]455){GameOver();snake.life=1;}if(snake.life==1)break;if(snake.x[0]==food.x&&snake.y[0]==food.y){setcolor(0);rectangle(food.x,food.y,food.x+10,food.y-10);snake.x[snake.node]=-20;snake.y[snake.node]=-20;snake.node++;food.yes=1;score+=10;PrScore();}setcolor(4);for(i=0;isnake.node;i++)rectangle(snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]-10);delay(gamespeed);setcolor(0);rectangle(snake.x[snake.node-1],snake.y[snake.node-1],snake.x[snake.node-1]+10,snake.y[snake.node-1]-10);}if(snake.life==1)break;key=bioskey(0);if(key==Esc)break;elseif(key==UP&&snake.direction!=4)snake.direction=3;elseif(key==RIGHT&&snake.direction!=2)snake.direction=1;elseif(key==LEFT&&snake.direction!=1)snake.direction=2;elseif(key==DOWN&&snake.direction!=3)snake.direction=4;}}voidGameOver(){cleardevice();PrScore();setcolor(RED);settextstyle(3,0,4);outtextxy(100,100,Mengmeng,iloveyou!);getch();}voidPrScore(){charstr[10];setfillstyle(SOLID_FILL,YELLOW);bar(50,15,220,35);setcolor(6);settextstyle(0,0,2);sprintf(str,score:%d,score);outtextxy(55,20,str);}voidClose(){getch();closegraph();} 更多有关「求用c语言编写的贪吃蛇程序#」的疑问请扫码关注微信公开课+小程序!
标签:微信公开课,小程序

「求用c语言编写的贪吃蛇程序」热议话题订阅
方法1:微信扫描微信公开课小程序码即可订阅热议话题「求用c语言编写的贪吃蛇程序」
方法2:微信搜索微信公开课小程序名称进入,即可订阅热议话题「求用c语言编写的贪吃蛇程序」
方法3:微信网页访问即速商店,长按识别微信公开课小程序码即可订阅热议话题「求用c语言编写的贪吃蛇程序」
微信公开课小程序热议话题「求用c语言编写的贪吃蛇程序」由微信公开课原创摘录于微信小程序商店shop.jisuapp.cn,转载请注明出处。
微信公开课热议话题「求用c语言编写的贪吃蛇程序」由微信公开课开发者向微信用户提供,并对本服务内容、数据资料及其运营行为等真实性、合法性及有效性承担全部责任。
微信公开课小程序
更新时间:2019-03-12 17:01:43
>
__methodCallerx27;ofundefined
>-404011cloudfunctionexecutionerror
>,请补充选择商家自营-预付卡销售-发行方类目,并在基础信息处申请该类目,通过
>:host在模拟器中显示无效
>:请在小程序服务页面上架正式(非测试)内容或商品后重新提交审核
>.net 微信小程序 上传图片
>'setTimeout'的问题
>‘三朵里熙SPA主题减压空间’为什么搜索关键词‘三朵里‘搜不到
>‘扫普通链接二维码打开小程序‘中设置为体验版,扫码打开是线上版本
>“cloudfunctions**indexjs”gitignore
>“NO ULINK DEVICE FOUND”是怎么回事
>“万马掌上校园”的类目审核
>“上线了”公司开发的微信小程序怎么样?
>“产品是否一定需要条形码”
>