C语言开发实现贪吃蛇游戏
本文实例为大家分享了C语言实现贪吃蛇游戏的具体代码,供大家参考,具体内容如下
1、最好用VS运行
2、用到的函数有:_kbhit_getchEasyX图形库内一系列函数
3、蛇身与食物用矩形画的
代码如下:
#include#include //easyx头文件 #include #include /********************设置各种属性**********************/ //坐标属性 typedefstructpoint{ intx,y; }PYINT; //蛇 structsnake{ PYINTxy[100];//蛇的每节坐标放到数组中 intposition;//方向 intnum;//长度 }SNAKE; //食物 structfood{ PYINTfdxy; intflag;//是否存在 intgrade;//成绩 }FOOD; //枚举:方向 //也可用宏#define enumposition { up,down,left,right }; /**********************对蛇的操作*****************************/ //初始化蛇 //蛇的每节为10x10填充的矩形 voidinitsnake() { SNAKE.xy[0].x=0; SNAKE.xy[0].y=0; //数组第一个元素为蛇头 SNAKE.xy[1].x=10; SNAKE.xy[1].y=0; SNAKE.xy[2].x=20; SNAKE.xy[2].y=0; SNAKE.position=right;//方向(随便给) SNAKE.num=3;//数量(随便给) } //画蛇 voidDrawsnake() { for(inti=0;i 0;i--){ SNAKE.xy[i].x=SNAKE.xy[i-1].x; SNAKE.xy[i].y=SNAKE.xy[i-1].y;//使每个元素向前移动 } switch(SNAKE.position) { caseup: SNAKE.xy[0].y-=10; break; casedown: SNAKE.xy[0].y+=10; break; //上下移动X坐标不发生改变 caseleft: SNAKE.xy[0].x-=10; break; caseright: SNAKE.xy[0].x+=10; break; //左右移动Y坐标不发生改变 } } /******************************按键操作*****************************************/ //当蛇向上运动时,按向下键无效(其他三个相同) voidKeydown() { charch=_getch(); switch(ch) { case'W': case'w': case72://小键盘上的“向上” if(SNAKE.position!=down)//是否向下 SNAKE.position=up; break; case'S': case's': case80://小键盘上的“向下” if(SNAKE.position!=up)//是否向上 SNAKE.position=down; break; case'A': case'a': case75://小键盘上的“向左” if(SNAKE.position!=right)//是否向右 SNAKE.position=left; break; case'D': case'd': case77://小键盘上的“向右” if(SNAKE.position!=left)//是否向左 SNAKE.position=right; break; } } /******************************食物操作**************************************/ //初始化食物 voidinitfood() { FOOD.fdxy.x=rand()%60*10; FOOD.fdxy.y=rand()%40*10;//把食物的坐标控制在游戏界面内 FOOD.flag=1;//1代表存在食物 //FOOD.grade=0; for(inti=0;i 600||SNAKE.xy[0].x<0|SNAKE.xy[0].y>400||SNAKE.xy[0].y<0)//撞墙 { initgraph(800,600); settextcolor(RED); outtextxy(600,400,"你撞墙了"); settextcolor(YELLOW); settextstyle(50,50,"楷体");//字体样式 outtextxy(200,250,"GAMEOVER");//指定位置输出字符串 return1; } return0; } /*****************************************************************************************/ intmain() { initgraph(600,400); setbkcolor(BLACK);//背景颜色 cleardevice();//清屏:刷新屏幕 srand((unsignedint)time(NULL));//随机数种子 initsnake(); Drawsnake(); while(1) { cleardevice();//清屏 Movesnake(); Drawsnake(); if(FOOD.flag==0){ initfood(); } Drawfood(); if(_kbhit()){//_kbhit:检测是否有按键动作 Keydown(); } if(gameover()){//若函数返回1:结束游戏 break; } eatfood(); putgrade(); Sleep(100);//延长时间(即蛇移动的速度) } _getch();//防止闪屏 closegraph();//关闭窗口 return0; } /**********************************************************/ //RGB(rand()%255,rand()%255,rand()%255)在三基色范围内随机产生 //记得安装EasyX插件
更多有趣的经典小游戏实现专题,分享给大家:
C++经典小游戏汇总
python经典小游戏汇总
python俄罗斯方块游戏集合
JavaScript经典游戏玩不停
java经典小游戏汇总
javascript经典小游戏汇总
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。