C++课程设计:贪吃蛇小游戏1.doc_第1页
C++课程设计:贪吃蛇小游戏1.doc_第2页
C++课程设计:贪吃蛇小游戏1.doc_第3页
C++课程设计:贪吃蛇小游戏1.doc_第4页
C++课程设计:贪吃蛇小游戏1.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课 程 设 计 报 告 课程名称:面向对象程序设计C+ 设计题目: 贪吃蛇小游戏 专 业:计算机科学与技术 姓 名: 学 号: 指导教师: 李 晓 虹 2015年 12 月 10 日1、 系统需求分析 1.1选题 本学期,根据老师所出的几个课程设计内容范围进行选题,进行综合分析之后,我决定选择贪吃蛇这个小游戏来进行编译。目的是希望能够通过简单并且经典的这个小游戏来达到最终了解复杂的MFC类的使用。1.2功能 使用MFC进行编译,能够实现贪吃蛇游戏最基本的功能。能够使用键盘上的上下左右的光标键来操作游戏的进程。并且能够针对游戏的进行进行计时计分功能的实现。二、总体设计2.1需求规定 本程序主要是一个交互式的游戏程序,通过玩家的键盘上下左右键控制贪吃蛇的运动方向。程序会根据您按下的键来判断贪吃蛇的走向。 2.2设计构思 这个程序的关键是表示蛇的图形以及蛇的移动。用一个小矩形表示蛇的一节身体,身体每长一节,增加一个矩形块。移动时必须从蛇头开始,所以蛇不能向相反方向移动,也就是蛇尾不能改作蛇头。如果不按任何键,蛇自行在当前方向上前移,当游戏者按了有效的方向键后,蛇头朝着指定的方向移动,一步移动一节身体,所以当按了有效的方向键后,先确定蛇头的位置,然后蛇身体随着蛇头移动,图形的实现是从蛇头的新位置开始画出蛇,这时由于没有清屏的原因,原来蛇的位置和新蛇的位置差一个单位,所以看起来社会多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现和消失也是画圆形和覆盖圆形。三、详细设计3.1系统流程 用流程图示出程序的主要控制流程和处理流程; 游戏载入内存并初始化界面判断游戏是否开始单击工具栏按钮 【玩】或者【游戏】【开始】开始游戏没有开始游戏,就返回初始界面贪吃蛇开始移动(初始方向向左)根据键盘消息判断蛇头的运动方向根据蛇头的坐标和食物的坐标判断蛇是否已经得到食物如果已经得到食物,则蛇的身体加长,积分器加一如果没有得到食物,则蛇的身体不变,积分器不变根据蛇头的坐标、蛇身体的坐标和墙壁的坐标判断蛇是否已经撞墙或者自己咬到自己如果没有撞墙并且没有自己咬到自己则程序继续进行如果已经撞墙或者自己咬到自己则程序终止贪吃蛇程序结束计时器开始计时积分器开始计分 3.2 数据结构 动态数组CArray m_aBody; / 保存蛇身 点类 CPoint m_pAim;/保存一个食物目标的坐标 3.3 重要函数: void CSnakeView:IniAim()/随机函数生成食物的X 和Y坐标void CSnakeView:IniGame()/改函数对游戏初始化定义游戏的初始状态void CSnakeView:ReDisplay(CPoint pPoint)/刷新游戏区域中pPoint处的一个小方格void CSnakeView:OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)/判断键盘按钮事件CView:OnTimer(nIDEvent);/计时器函数来重画屏幕4、 系统调试Menu界面调试:调试FileView里,各个文件代码:五、结果分析5.1运行界面进入运行界面之后,界面的左边是小游戏,右边是对贪吃蛇游戏的一个简单的说明讲解以及注意事项。5.2游戏开始点击菜单栏上的【游戏】-【开始】按钮或者是【玩】按钮,即可开始游戏5.3游戏进行界面游戏进行时,右边的计时计分页面将会同时进行。吃掉一个小方块,得分增加1,时间按秒递增。5.4程序结束界面当贪吃蛇撞到墙,或者进行了非法操作的时候,游戏结束,会弹出提示信息“呜呜呜,贪吃蛇挂掉了”。六、总结 通过此次编程这个小游戏,不仅让我学到了对MFC类的用法,更加让我从中学会了更多的C+知识,再一次复习巩固了C+面向对象的编程思想,对类,对象,继承,派生等有了更深的理解的实际操作。由于上学期我们运用过MFC编写简单的小程序,因此有了一定的基础,在此基础上,再结合自己所学习的C+面向对象

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论