前言
类贪吃蛇是利用c语言模仿并实现经典游戏贪吃蛇,使其在窗口有贪吃蛇活动的规定范围,并完成一系列包括但不限于模仿蛇的移动,方向控制,吃到食物加分,撞上墙壁及蛇头碰到蛇身死亡等游戏功能。
附加功能:在实现上述功能情况下,还增添了无边框模式,障碍物模式及实现不同情景下发出不同声效,分数实时更新,保存最高分并显示的效果。
功能
- 开始界面模块:选择进入不同模式:无边框模式,正常模式,障碍物模式,或选择退出。
- 游戏流程模块:设置蛇移动方向默认向上,默认蛇未吃到食物,没有遇到危险,通过调用不同函数分别控制不同游戏流程。
- 打印边框及装饰物模块:通过设置光标位置、隐藏光标位置,解决闪烁问题;通过控制台窗口字体颜色和背景色,在不同情况下:如开始界面及打破记录界面,游戏失败界面,游戏进行界面,分别打印不同装饰物及边框;通过导入声音头文件,在不同情景下发出不同声效。
- 规则提示界面模块:说明对应操作的键盘控制键,不同游戏模式下,分别显示不同的游戏规则,与显示当前模式的最高分,及动态显示当前分数。
- 初始化模块:当玩家刚进入游戏界面,蛇头将默认出现在画面中间,蛇长默认为3,最大长度规定为100,蛇运动速度默认为200,食物(与障碍物)随机产生。
- 随机生成食物(及障碍物)模块:检测到蛇吃到食物,发出对应庆祝音效,无需擦除蛇尾那节,加快运动速度,实时更新分数,并随机生成并打印新的食物及障碍物(位置上确保其横坐标为偶数,且不与蛇身重合)。
- 键盘键检测模块:监测玩家对于键盘的操纵,实现对蛇方向的控制(↑:向上,↓:向下,←:向左,→:向右,空格:暂停,重复按两次其他键:退出游戏),并且实现如玩家两次对方向的操作冲突,继续按照之前的方向运动的功能。
- 判断游戏失败模块:在无边框模式下,蛇只有咬到自己才算失败,结束游戏;在正常模式下,蛇咬到自己或碰到墙壁都判断为失败并且结束游戏;在障碍物模式下,蛇咬到自己,碰到墙壁,或者碰到障碍物,都被认定为失败并且结束游戏。
关键部分
蛇的移动效果
将蛇头与蛇身的横坐标及纵坐标用数组中连续的存储空间储存,当蛇移动时,后一节蛇身坐标变为前一节蛇身坐标,在未吃到食物时,抹去最后一节,即最后一节蛇身打印为背景色,营造蛇身移动效果;在吃到食物时,不抹去最后一节,营造蛇身变长的效果。
键盘键检测
如果相邻两次按键有冲突,比如前一次按键为↑,第二次按键为↓,或第一次按键为←,第二次按键为→等令蛇身无法扭转的情况,则会默认前一次方向移动;单击空格键暂停,再次点击则继续游戏;其他键单击暂停游戏,按击第二次则结束游戏。
效果展示
最后
这个是大一学完c语言那会的课设,很多细节都不记得了,代码已经上传至 c语言 贪吃蛇,有需要可以看看,欢迎star!