贪吃蛇综合设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《高级语言程序设计》综合实验报告第一小组:贪吃蛇游戏
一、实验环境
操作系统:Windows 10
编程环境:codeblocks
二、实验内容与完成情况(主要介绍项目总体功能分析与说明)
功能1
♦功能1的文字描述
移动控制台光标坐标
♦功能1实现的流程图
♦功能1代码
功能2
♦功能2的文字描述
改变蛇的移动方向♦功能2实现的流程图
功能2代码
功能3
功能3的文字描述
判断蛇是否吃到食物,是,则生成新食物的坐标,得分、等级、速度和蛇的长度增加;否,则保留原食物坐标。
功能3实现的流程图
功能3代码
功能4
♦功能4的文字描述
判断蛇是否存活
♦功能4实现的流程图
功能4代码
功能5
♦功能5的文字描述
显示游戏图像、得分和等级。
♦功能5代码
功能6
♦功能6的文字描述
运行调用游戏相关的函数,储存最高分、打破记录的人和分数、进入排行榜的人数(打破前一个最高分记录才能进入排行榜)。
♦功能6实现的流程图
功能6的代码
功能7
♦功能7的文字描述
调用功能6的函数,死亡后可选择重新开始或退出游戏输出排行榜。
♦功能7实现的流程图
功能7的代码
功能8
♦功能8的文字描述
读取储存了排行榜信息的文件,并赋值给姓名和得分变量char name1[10]、int score1,在控制台界面上输出排行榜
♦功能8的代码
三、功能测试
1、游戏开始界面
测试结果:用户可以输入自己喜欢的英文名字。
输入完成后按回车键可以看到游戏的操作指南。
2、蛇的移动、食物、分数记录
测试结果:游戏开始,蛇头“@”和食物“*”出现,可以用“WSAD”
来控制蛇上下左右移动,成功吃到食物蛇身变长并且每吃到一个食物右侧记录的等级和得分会增加一点。
3、蛇的死亡,最高纪录和排行榜显示
测试结果:蛇死亡后界面自动弹出“Game over”并且显示出玩家在
上一局的分数;接着玩家可以选择“y”或“n”来决定是否重玩游戏,不重玩游戏则输出排行榜并按任意键结束。
四、项目总结(其中的错误和解决方案)
1闪屏。
游戏开始后界面上的所有字符都在闪烁,并且频率越来越快。
解决办法:
不用清屏函数打印蛇、食物、标题和墙,把墙和标题放在循环外只打印一次,每一次打印蛇时,将上一个蛇尾打印成空格输出。
2蛇死后无法再一次开始游戏。
解决办法:
把运行游戏的主干函数作为一个非主函数,在主函数中加入无限大循环,把游戏主干函数放在里面,在判断游戏结束后增加一条if语句
来选择是否重玩,是,则继续重复主函数的大循环,实现重玩的功能。
3蛇吃到一定数量的食物时,突然停止工作。
解决办法:
制造新食物时,如果坐标不符合要求,不使用递归调用,用一个循环语句代替。