c语言 图形化贪吃蛇 多种功能 无需安装第三方库 课设 (附代码)

该文介绍了一款使用C语言编写的贪吃蛇游戏,包括无边框模式、障碍物模式和不同情景下的声效。游戏具有开始界面、规则提示、初始化设置、随机生成食物和障碍物、键盘控制以及游戏失败判断等功能。蛇的移动和增长效果通过数组存储和更新坐标实现,键盘检测处理了移动冲突和暂停/退出操作。
摘要由CSDN通过智能技术生成

在这里插入图片描述

前言

类贪吃蛇是利用c语言模仿并实现经典游戏贪吃蛇,使其在窗口有贪吃蛇活动的规定范围,并完成一系列包括但不限于模仿蛇的移动,方向控制,吃到食物加分,撞上墙壁及蛇头碰到蛇身死亡等游戏功能。

附加功能:在实现上述功能情况下,还增添了无边框模式,障碍物模式及实现不同情景下发出不同声效,分数实时更新,保存最高分并显示的效果。

在这里插入图片描述

功能

  1. 开始界面模块:选择进入不同模式:无边框模式,正常模式,障碍物模式,或选择退出。
  2. 游戏流程模块:设置蛇移动方向默认向上,默认蛇未吃到食物,没有遇到危险,通过调用不同函数分别控制不同游戏流程。
  3. 打印边框及装饰物模块:通过设置光标位置、隐藏光标位置,解决闪烁问题;通过控制台窗口字体颜色和背景色,在不同情况下:如开始界面及打破记录界面,游戏失败界面,游戏进行界面,分别打印不同装饰物及边框;通过导入声音头文件,在不同情景下发出不同声效。
  4. 规则提示界面模块:说明对应操作的键盘控制键,不同游戏模式下,分别显示不同的游戏规则,与显示当前模式的最高分,及动态显示当前分数。
  5. 初始化模块:当玩家刚进入游戏界面,蛇头将默认出现在画面中间,蛇长默认为3,最大长度规定为100,蛇运动速度默认为200,食物(与障碍物)随机产生。
  6. 随机生成食物(及障碍物)模块:检测到蛇吃到食物,发出对应庆祝音效,无需擦除蛇尾那节,加快运动速度,实时更新分数,并随机生成并打印新的食物及障碍物(位置上确保其横坐标为偶数,且不与蛇身重合)。
  7. 键盘键检测模块:监测玩家对于键盘的操纵,实现对蛇方向的控制(↑:向上,↓:向下,←:向左,→:向右,空格:暂停,重复按两次其他键:退出游戏),并且实现如玩家两次对方向的操作冲突,继续按照之前的方向运动的功能。
  8. 判断游戏失败模块:在无边框模式下,蛇只有咬到自己才算失败,结束游戏;在正常模式下,蛇咬到自己或碰到墙壁都判断为失败并且结束游戏;在障碍物模式下,蛇咬到自己,碰到墙壁,或者碰到障碍物,都被认定为失败并且结束游戏。

关键部分

蛇的移动效果

将蛇头与蛇身的横坐标及纵坐标用数组中连续的存储空间储存,当蛇移动时,后一节蛇身坐标变为前一节蛇身坐标,在未吃到食物时,抹去最后一节,即最后一节蛇身打印为背景色,营造蛇身移动效果;在吃到食物时,不抹去最后一节,营造蛇身变长的效果。

键盘键检测

如果相邻两次按键有冲突,比如前一次按键为↑,第二次按键为↓,或第一次按键为←,第二次按键为→等令蛇身无法扭转的情况,则会默认前一次方向移动;单击空格键暂停,再次点击则继续游戏;其他键单击暂停游戏,按击第二次则结束游戏。

效果展示

在这里插入图片描述

在这里插入图片描述

最后

这个是大一学完c语言那会的课设,很多细节都不记得了,代码已经上传至 c语言 贪吃蛇,有需要可以看看,欢迎star!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值