- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE
齐齐哈尔大学计控学院
选题名称: 用C++实现贪吃蛇设计
题目类别: 数据结构
姓 名: 孙迪宇
2021023018
班 级: 软件091
指导教师: 李长荣、吴迪
设计时间: 2021年12月
第一章 应用程序的介绍 - 1 -
1.1选题背景 - 1 -
第二章 概要设计 - 2 -
2.1程序结构 - 2 -
2.2程序流程 - 2 -
第三章 游戏实现 - 3 -
3.1游戏界面控制 - 3 -
3.2初始化食物 - 3 -
3.3游戏控制 - 4 -
3.4游戏设置 - 4 -
第四章 结果与讨论 - 5 -
4.1程序运行 - 5 -
4.2错误调试与分析 - 5 -
附录 - 6 -
1 -
开 题 报 告
1 -
课题介绍
1.1.选题背景
本程序采用Microsoft Visual C++6.0的中文版本进行编译。VisualC++6.0是Microsoft公司推出的基于Windows操作系统的可视化C++编程工具,尽管Microsoft公司推出了.NET平台的集成开发环境,但由于其良好的界面和可操作性,加上支持标准C/C++标准,但仍有相当多的编程人员使用VisualC++6.0进行应用系统的开发。
本程序经过调试,可以在XP系统下编译运行,也可以在Vista下运行,界面稍有不同,但不影响运行结果。
概要设计
2.1程序结构
根据分析,贪吃蛇这个程序一共要实现如下几个功能,包括游戏方面开始游戏、暂停游戏以及停止游戏,音乐音效的添加与控制,游戏帮助提示与英雄榜的显示等等。具体的程序结构如下面的图1-1所示。
图2-1 贪吃蛇结构图
2.2程序流程
根据分析后的贪吃蛇结构设计出相应的贪吃蛇流程。贪吃蛇的内容主要包括: 游戏开始,随机
出现食物;按下ToolBar中的暂停按钮或Space键可以实现暂停功能;按下帮助键或ToolBar中的“?〞键可获得游戏帮助说明;可播放背景音乐和音效并可通过菜单以及ToolBar控制其播放或停止等等。
图2-2 贪吃蛇流程图
游戏实现
3.1游戏界面控制
“吃〞的功能是很重要的。因此在游戏界面的初始绘制时就必须考虑到游戏时可能遇到的问题。
本程序采用点数组CArrayCPoint,CPoint m_ysBody来存储贪吃蛇,点数组的功能很强大,可以添加点,同时可以获得蛇的长度,对于而后进行游戏中控制蛇的颜色以及音效的播放等都有很大的帮助。
3.2初始化食物
确定用点数组存储贪吃蛇以后,贪吃蛇的食物如何到达随机出现,并且能够按照网格式与蛇头无偏差相接就是一个亟待解决的问题。
随机出现应采用rand()m_ysX,m_ysYm_ysX= rand()%30, ,m_ysY= rand()%40即可。使随机出现的点能够整除最小网格,也就是使食物与蛇头无偏差相接。
再由食物坐标〔m_ysX,m_ysY〕与蛇头坐标是否相同判断蛇是否“吃〞到了食物,设置判断标签ysTag,如果吃到了,ysTag为1,那么再出现下一个食物,反之,如果没吃到,那么不出现食物直到标签为1为止。
最后,再将〔m_ysX,m_ysY〕赋给m_ysFood。
3.3游戏控制
开始游戏后的重点是如何用键盘来控制蛇的移动并传递到OnTimer(UINT nIDEvent)m_ysDirect,再添加OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)m_ysDirect会相应的改变,再利用switch语句在OnTimer(UINT nIDEvent)
其次来解释一下如何判断蛇的死亡,由于蛇的身体是由点坐标数组构成的,因此判断蛇是否死亡其本质就是判断蛇头的坐标是否与游戏边框相同或者蛇头坐标是否与蛇自己的身体相同。该过程也在OnTimer(UINT nIDEvent)ysTag1,当按下向下键时,蛇纵坐标不断自加,
如果ysTag1为1,那么说明蛇已经死亡,应当弹出对话框提示死亡,输出得分〔如图3-4〕,同时还可以根据玩家的得分数相应的改变对话框中的话语〔XP系统下〕。
我们看到蛇身体的颜色发生了变化,不再是初始状态的绿色,而是变为了蓝色,这是在OnDraw(CDC* pDC)
并且伴随着贪吃蛇挂掉,播放不同的音乐,如果高于70分,那么放带有掌声鼓励的高分音乐的IDR_YS_HIGHSCORE,反之,那么播放蛇被撞死的电子音乐IDR_Y
文档评论(0)