C++课程设计:贪吃蛇小游戏.docx

上传人:scccc 文档编号:13012222 上传时间:2021-12-10 格式:DOCX 页数:9 大小:221.68KB
返回 下载 相关 举报
C++课程设计:贪吃蛇小游戏.docx_第1页
第1页 / 共9页
C++课程设计:贪吃蛇小游戏.docx_第2页
第2页 / 共9页
C++课程设计:贪吃蛇小游戏.docx_第3页
第3页 / 共9页
C++课程设计:贪吃蛇小游戏.docx_第4页
第4页 / 共9页
C++课程设计:贪吃蛇小游戏.docx_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《C++课程设计:贪吃蛇小游戏.docx》由会员分享,可在线阅读,更多相关《C++课程设计:贪吃蛇小游戏.docx(9页珍藏版)》请在三一文库上搜索。

1、.课 程 设 计 报 告 课程名称:面向对象程序设计C+ 设计题目: 贪吃蛇小游戏 专 业:计算机科学与技术 姓 名: 学 号: 指导教师: 李晓红 2016 年 1 月 7日1、 系统需求分析 贪吃蛇游戏作为一款经典小游戏,版本多样,娱乐性也很高,适合在闲暇时放松心神。并且可在多个平台上实现,程序简单易懂,非常适合初学者学习制作。 1、语言的使用 现在的贪吃蛇游戏一般是用C语言实现的,用C语言编写贪吃蛇游戏比较简单易懂,当然也可以用其他语言来实现,比如Java、C+、C#等,这里我们用C+来实现。 2、用C+的优势 C+在一定程度上可以和C语言很好的结

2、合,甚至大多数C语言程序是在C+的集成开发环境中完成的。C+相对众多的面向对象的语言,具有相当高的性能。C+引入了面向对象的概念,使得开发人机交互类型的应用程序更为简单、快捷。很多优秀的程序框架包括Boost、Qt、MFC、OWL、WTL就是使用的C+。   人们一般认为,使用Java或C#的开发成本比C+低。但是,如果充分分析C+和这些语言的差别,会发现这句话的成立是有条件的。这个条件就是:软件规模和复杂度都比较小。如果不超过3万行有效代码(不包括生成器产生的代码),这句话基本上还能成立。否则,随着代码量和复杂度的增加,C+的优势将会越来越明显。造成这种差别的就

3、是C+的软件工程性。 相对于其他的语言,C+具有它自己的优势,主要体现在以下几个方面: (1)C+实现了面向对象程序设计。在高级语言当中,处理运行速度是最快的,大部分的游戏软件,系统都是由C+来编写的。 (2)C+语言非常灵活,功能非常强大。如果说C语言的优点是指针,那么C+的优点就是性能和类层次结构的设计。 (3)C+非常严谨、精确和数理化,标准定义很细致。 (4)C+语言的语法思路层次分明、相呼应;语法结构是显式的、明确的。当然,这只是C+的一部分优势,在运用过程中,我们会逐渐发现C+语言之美。2、 总体设计2.1 设计思路  定

4、义蛇和食物的全局变量,初始化贪吃蛇各项成员变量,包括图像的出现在屏幕的初始位置,长度,以及蛇的行走方向。食物类的定义包括出现的初始位置,以及食物是否被吃掉的判断。   用数组初始化长度为3的贪吃蛇,并且默认食物未出现   在CView类上运用MFC提供的Windows消息中WM_TIMER消息,运用OnTimer()函数让系统提供一个时钟节拍,更新游戏 。  具体游戏实现,包括蛇撞到自己和围墙都将使游戏结束,判断吃豆等,其中还包括根据蛇的长度来进行游戏难度的改变。  具体键盘游戏操作运用到Windows消息响应中的WM_KE

5、YDOWN,用OnKeyDown()来响应玩家的实际操作。2.2模块功能介绍游戏总共七个类,其中以下四个类为主要。1、 主界面对话框类:主要负责主菜单及各个窗口类对象的创建和调用等处理。2、 贪吃蛇窗口类:主要负责接收玩家键盘输入的移动蛇的位置。3、 帮组对话框类:主要负责帮助提示的显示及其它显示功能。4、 贪吃蛇视图类:主要负责显示贪吃蛇界面的展示。2.3模块结构图2.3.1游戏主界面设计贪吃蛇游戏主界面的设计,如下图1所示 图1贪吃蛇游戏主界面2.3.2游戏主菜单结构的设计图2 游戏主菜单结构3、 详细设计3.1游戏菜单的实现在贪吃蛇游戏中,通过如下几个步骤即可实现添加游戏的菜单。 (1)

6、 在贪吃蛇游戏工程的资源中添加一个菜单资源 (2) 给每个菜单栏添加响应函数到CMainFrame类中。 3.2游戏帮助对话框的实现贪吃蛇游戏中的帮助是使用一个对话框来实现的。其实现步骤如下。 (1) 添加一个对话框资源到工程中,并填写说明文字。(2) 编写一个CAboutDlg对话框类,主要是加载IDD_ABOUTBOX对话框资源。通过资源中的文字说明对游戏操作方法进行描述。同时只包含单击“确定”按钮的响应函数。CAboutDlg对话框类的实现,需要实现对话框类的构造函数、析构函数和“确定”按钮响应函数3.3新游戏处理模块的设计与实现 新游戏处理模块主要负责游戏中的游戏初始化及开始游戏。其设

7、计比较简单,只需要通过如下几步即可实现。 (1)载入图片资源和配置文件中的数据。 (2)把所有的游戏参数进行初始化。例如,当前消耗时间和状态等。 (3)初始化表示蛇的长度区域的二维数组。 (4)让地游戏区域图像失效,重新绘制新的图像。实现代码如下,3.4游戏规划模块的设计与实现 游戏规则模块的实现,主要由游戏胜利和游戏结束判断函数组成。通过对游戏的结果进行判断,实现贪吃蛇游戏的规则。1、 游戏胜利的判断 如果没有出现意外情况,蛇的长度一直增加,直到达到升级的长度,则说明游戏胜利。2、 游戏结束的判断当玩家移动蛇的位置吃食物时,就对当前蛇的位置进行判断。如果撞到墙壁或是咬到自己,说明玩家不行。游

8、戏以失败结束。而如果没有遇到上述情况,就对玩家蛇的长度进行判断,如果长度符合升级条件,则升级成功,游戏结束。3.5游戏绘图模块的设计与实现 在贪吃蛇游戏中,通过绘图模块实现食物、蛇及控制按钮等图片和信息的提示。有以下几个函数组成。1、 绘按钮函数 绘按钮函数,主要通过在游戏中不断地得到当前游戏的状态。根据这个按钮,在按钮图片中把指定的坐标范围图片绘制到主界面上。2、 绘游戏区函数 绘游戏区函数,时通过遍历当前游戏区数组,并根据当前元素所代表的类型不同,将不同的图片绘制到位置。3.7、玩家输入模块的设计与实现 在贪吃蛇游戏中,用的最多的就是键盘的输入。而键盘输入又分为键盘左键单击和右键单击两种处

9、理类型。4、 系统调试 在运行程序时遇到问题,通过查找书籍和网络解决问题,但目前还没有完成背景音乐功能。5、 结果分析5.1 主菜单和界面显示功能的测试演示这个测试主要是测试游戏的菜单和界面显示是否成功,其测试步骤如下。(1) 运行贪吃蛇程序,选中其中的.exe图标,如图3所示。(2) 程序启动后,其菜单及主界面如图4所示。(3) 判断结果:游戏的菜单和界面显示成功。图3运行贪吃蛇程序图4贪吃蛇游戏主界面及菜单5.2、键盘输入功能的测试演示键盘输入功能测试,其测试步骤如下,(1) 游戏开始后,使用键盘上下左右键控制蛇的移动位置,如图5所示。(2) 判断结果:键盘输入功能测试成功。图5 操作界面

10、5.3游戏胜负判断功能的测试演示 测试贪吃蛇游戏中游戏胜负判断功能。其测试步骤如下。 (1) 游戏开始后,玩家慢慢移动蛇的位置吃食物,但是吃到两个后升级。(2)直到撞到墙壁或是要到自己将会弹出失败提示对话框。 图6 测试界面 5.4游戏帮助功能的测试演示玩测试贪吃蛇游戏是否有帮助提示功能。其测试步骤如下。 (1)选择“帮助”|“关于”命令,(2)游戏中弹出“帮助”对话框,如图7所示。图7六、总结 本次课C+程设计让我获得了不少知识,学会了自己动手制作而不是修改别人的代码,这样会让学习的知识更加巩固,并且能提升自己独立思考的能力。其实,这个贪吃蛇小游戏,我做很长时间,修改错误、更改界面等等。修改

11、错误有些时间也成了制作的乐趣所在,不断完善功能,修复漏洞。虽然课程设计按时间完成了,但是,由于知识和经验方面的欠缺,设计的还不是很完善,其中还有一段时间不知该如何下手,做了无用功,我认为前期准备很重要,做好最终的设计计划,不要有缺陷就立即增添,理清思绪和要完成的规划,要多查资料,多积累知识才能够做的更完美。 途上一个非常美好的回忆!同时在做课程设计时要能够从多方面去考虑,去研究,用多种方法去实现要求。此次课程设计,学到了很多课内学不到的东西,比如独立思考解决问题,出现差错的随机应变,这些都让我受益非浅,今后的制作应该能够更轻松,自己也都能够解决并高质量的完成项目。 课程设计是每一个大学生在大学生涯中都不可或缺的,它使我们在实践中了巩固了所学的知识、在实践中锻炼自己的动手能力;实习又是对每一位大学生所学专业知识的一种拓展手段,它让我们学到了很多在课堂上根本就学不到的知识,不仅开阔了自己的视野,增战了自己的见识,也为我们以后进一步走向社会打下了坚实的基础,是我们走向以后走向工作岗位的奠基石。:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1