C语言实现简单贪吃蛇小游戏
本文实例为大家分享了C语言实现简单贪吃蛇的具体代码,供大家参考,具体内容如下
依然是非常传统的贪吃蛇小游戏,网上很多教程,配置好ege图形库就好,不然没有grapics.h另外,还需要添加snakes.h,直接上代码吧,注释很详细了。觉得难度有一部分来源于配置图形库。
snakes.h
voidwelcome();
voidinitSnake();
voidcreatePoint();
voiddrawSnake();
voiddrawRandomPoint();
voidview();
voidsMove();
voidchangeHead();
voidkeyControl(intkey);
voiddrawScore(intx,inty,intscore_size);
intisGetPoint();
voidagainGame();
intisGameOver();
#defineWINWIDTH800//窗口的宽度
#defineWINHIGH544//窗口的高度
#defineS_POOLX30//游戏池开始的横坐标
#defineS_POOLY30//游戏池开始的纵坐标
#definePOINT_W10//构成蛇的小方块的宽度
#defineE_POOLX(S_POOLX+(POINT_W+2)*43-2)//游戏池结束的横坐标
#defineE_POOLY(S_POOLY+(POINT_W+2)*33-2)//游戏池结束的纵坐标
#defineMAX_SNAKE100//蛇最大的长度
//定义一个枚举类型,表示蛇运动的方向
enumdire
{
LEFT=1,
RIGHT,
UP,
DOWN,
};
structpoint
{
intx;//点的横坐标
inty;//点的纵坐标
color_tcoler;//点的颜色
}snake[MAX_SNAKE];//定义一个点的结构体,包括横纵坐标,以及点的颜色。并定义一个名为snake的点的数组作为蛇的数据存放
main.c
#include#include"snake.h" #include ints_length=0;//存放蛇的长度 intscore=0;//存放获得的分数 enumdires_direction=RIGHT;//初始化蛇的方向是向右运动 structpointr_point;//定义一个point结构体来存放随机出现点的数据,即蛇的食物 /********************************************** *游戏结束时显示函数 *名称:voidAgainGame() *功能:绘制游戏开始界面 *********************************************/ voidagainGame() { //声明一个img图片对象 PIMAGEimg; cleardevice();//清屏 //用newimage在initgraph后创建这个对象。但记得要在不使用的时候delimage img=newimage(); getimage(img,"C://Users//Administrator//Desktop//图片//snake.end!.jpg");//加载游戏结束的图片 putimage(0,0,img);//显示游戏结束的图片 drawScore(360,250,60);//绘制显示得分 while(getch()!='r')//等待用户按键,若等于'r'键,则跳出结束界面,即重新开始程序 { if(!is_run()) { break;//防止无法关闭窗口 } } delimage(img);//销毁img变量 } /************************************************ *判断游戏是否结束函数 *名称:intisGameOver() *功能:通过检查蛇是否出界或者碰到自身身体来判断是否游戏结束 *返回值:为1则表示游戏结束,为0则游戏进行中。 ***********************************************/ intisGameOver() { inti; //判断蛇头是否超出边界 if((snake[s_length-1].x E_POOLX-POINT_W)||(snake[s_length-1].y E_POOLY-POINT_W)) { return1; } else { for(i=0;i =0.2)//用当前的时间减去上一次记录的时间如果超过0.2秒则,移动一格。 { sMove(); timeBefor=timeNow; } if(isGetPoint())//判断蛇是否迟到食物 { createPoint();//创建一个新的食物 } view();//显示 } againGame();//是否再来一局 } } intmain(void) { //1、点击右上角X的时候,程序不主动结束,只是将窗口关闭 //2、绘图更新模式改为手动跟新,仅当调用delay_ms、delay_fps等这种函数时候,才去更新画面,避免闪烁 //3、ege图形库的默认设置 setinitmode(INIT_ANIMATION); //图形初始化,窗口尺寸800x544 initgraph(WINWIDTH,WINHIGH); //设置窗口的标题 setcaption("贪吃蛇游戏"); //随机数初始化,如果需要使用随机数的话 randomize(); //程序主循环 mainloop(); //关闭绘图设备 closegraph(); return0; }
素材截图
(1)welcome.png
(2)game.png
(3)gameover.png
更多有趣的经典小游戏实现专题,分享给大家:
C++经典小游戏汇总
python经典小游戏汇总
python俄罗斯方块游戏集合
JavaScript经典游戏玩不停
java经典小游戏汇总
javascript经典小游戏汇总
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
热门推荐
10 广西考试祝福语结婚简短
11 猪年祝福语简短小孩
12 元旦祝福语送长辈简短
13 恭喜二宝祝福语简短
14 祝福语暖心话简短
15 国庆中秋祝福语简短兄弟
16 朋友订婚的祝福语简短
17 送弟弟中秋祝福语简短
18 爱生日祝福语简短独特