mfc贪吃蛇实验报告_第1页
mfc贪吃蛇实验报告_第2页
mfc贪吃蛇实验报告_第3页
mfc贪吃蛇实验报告_第4页
mfc贪吃蛇实验报告_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观mfc贪吃蛇实验报告篇一:MFC贪吃蛇实验报告 高级语言程序设计实验报告 设计题目贪吃蛇 目录 1课程设计的目的和要求 1.1 课程设计目的和任务 1.2课程设计的要求 2课程设计任务内容 2.1 本次课程设计的主要任务如下 2.2 游戏规则 2.3 设计流程 3软件使用说明 3.1 编辑程序的主要软件 3.2 程序使用过程 3.2.1 贪吃蛇进入 3.2.2 贪吃蛇的玩法1111 12 23 333 33.2.3 贪吃蛇的结束 44课程设计的心得体会 44.1 课程设计的心得44.2 课程设计的体会4参考文献 附录:部分程序清单 1 课程设计目的和要求1.1 课程设计的目的和任务1. 巩固加深对C+语言基本知识的理解和掌握 2. 掌握运用高级语言程序设计的基本技能 3. 利用C+语言进行基本的程序设计 4. 掌握书写程序设计说明文档的能力 5. 提高运用C+语言解决实际问题的能力1.2 课程设计的要求1. 分析题目的要求 2. 写出详细的设计说明3. 编写程序代码,调试程序使其能正确运行 4. 设计完成的软件要便于操作和使用 5. 设计完成后做实验报告号并准备答辩2 课程设计任务内容 5 5 2.1 本次课程设计的主要任务如下1)通过编写“贪吃蛇游戏”程序,掌握结构化、模块化程序设计的思想,培养解决实际问题的能力。2)设计好数组元素与蛇、食物的对应关系。 3)随机产生食物。4)有分数统计、同步显示功能。通过本次课程设计,使我们能更加深入的了解高级语言程序设计的思想。从而进一步提高我们解决实际问题的能力。2.2 游戏规则通过一个学期对高级语言程序设计的学习,经过课程设计,完善我们对高级语言程序设计学习的漏洞和未学会的知识,更加熟练的掌握高级语言程序设计,锻炼我们自主设计程序编写代码的能力。2.33 软件使用说明3.1 编辑程序主要软件对于这次课程设计,主要使用的软件visual c+ 6.0,在平日的学习中,我们也经常用这种软件进行编程,已基本掌握了此软件的用法。3.2 程序使用过程3.2.1 贪吃蛇进入进入界面如下图所示篇二:MFC贪吃蛇实验报告 贪吃蛇实验报告 XX21143049 信计1212许圣1. 概述此次课程设计我利用MFC制作了一个贪吃蛇游戏,用户可以通过上下左右控制蛇的移动方向,游戏会根据贪吃蛇身体的长度自动增加难度。在游戏过程中,会记录运行时间和所得分数,我还添加了bmp格式的图片作为游戏背景。2. 功能描述2.1 设计思路本软件主要由三个模块构成,它们分别是蛇运行模块,初始化处理模块和显示模块。它们的作用分别是,初始化处理:初始化蛇头位置与第一个点位置;蛇运行模块:控制蛇的上下左右运行,并对蛇的运行状态进行判断,根据(吃点、未吃点、死亡等)状态进行不同的子程序模块处理以及游戏者是否能晋级的判断;显示模块:根据对蛇和点子的当前状态进行动画显示。主要有以下步骤: 1. 定义蛇类和食物类,初始化贪吃蛇各项成员变量,包括图像的出现在屏幕的初始位置,长度,以及蛇的行走方向。食物类的定义包括出现的初始位置,以及食物是否被吃掉的判断。2. 用数组初始化长度为4的贪吃蛇,并且默认出现一个食物。3. 在CView类上运用MFC提供的Windows消息中WM_TIMER消息,运用OnTimer()函数让系统提供一个时钟节拍,更新游戏4. 具体游戏实现,包括蛇撞到自己和围墙都将使游戏结束,判断吃豆等,其中还包括根据蛇的长度来进行游戏难度的改变。5. 具体键盘游戏操作运用到Windows消息响应中的WM_KEYDOWN,用OnKeyDown()来响应玩家的实际操作。6. 添加了bmp格式的图片作为游戏背景。 整体流程图如下图1。图1:系统流程图2.2功能介绍 运行程序,出现围墙界面,一条蛇在密闭的围墙内,在围墙内随机出现一个食物,出现bmp格式图片的背景。 点击“游戏-游戏开始”,游戏开始。还可暂停游戏 继续 游戏开始后,界面右下角会同步游戏得分。 通过四个方向键控制蛇的运动方向,吃掉随机出现的豆子,若不小心碰到墙壁或者与自身相交,则该轮游戏结束。 游戏会根据蛇身的长度自动调节难易程度。3. 详细设计3.1 主要函数? void CSnakeView:OnDraw(CDC* pDC)/显示背景图片? void CSnakeView:OnKeyDown(UINT nChar, UINT nRepCnt, UINTnFlags)/按照用户的按键来控制蛇的移动? void CSnakeView:OnTimer(UINT nIDEvent)/根据蛇的长度来进行SetTimer()函数的定义,可以根据长度来进行游戏难度的设定。/撞界判断/蛇身相撞判断/抹掉蛇行走的痕迹/判断吃豆的条件,撞到就吃/如果食物被吃了 就生成? void CSnakeView:oninit()/进行贪吃蛇外观的初始化 ? void CSnakeView: OnGameStart ()/开始游戏 ? void CSnakeView: IniAim ()/初始化目标的位置 ? void CSnakeView:IniGame()/初始化游戏 ? void CSnakeView:ReDisplay(CPoint pPoint) ? bool CSnakeView:ReadBmp(char *bmpName)3.2主要功能介绍: 3.2.1 背景图片加载:定义变量和函数用于读取 bmp图片做准备:BITMAPINFOHEADER head;unsigned char *pBmpBuf; bool ReadBmp(char *bmpName);定义ReadBmp函数用于读取bmp格式的图片,在初始化的时候调用该函数ReadBmp(BootPic.bmp),来读取背景图片。在OnDraw函数中实现对图片的刷新:CRect rec;GetClientRect(&rec);SetStretchBltMode(pDC-m_hDC, HALFTONE); SetBrushOrgEx(pDC-m_hDC, 0, 0, NULL);StretchDIBits (pDC-m_hDC, rec.left, rec.top, rec.Width(), rec.Height(), 0, 0,head.biWidth, head.biHeight, pBmpBuf, (BITMAPINFO*)&head, DIB_RGB_COLORS, SRCCOPY);3.2.2 初始化游戏:主要初始化蛇的初始化位置,实物的初始化位置:void CSnakeView:IniGame() m_nLeft=20; m_nTop=20; m_nWidth=40; m_nHeight=30; m_nSize=10;m_nGameStatus=0; m_nDirect=1; m_nCount=0;m_aBody.RemoveAll(); m_aBody.Add(CPoint(2,7); m_aBody.Add(CPoint(2,6); m_aBody.Add(CPoint(2,5); m_aBody.Add(CPoint(2,4);篇三:基于MFC的贪吃蛇程序设计(课程设计) 报告 MFC应用程序设计 课程设计报告题 目: 学 院: 专 业: 班 级: 姓 名: 学 号:指导教师: 评阅成绩:二0年月 日目录概述 ?3 1. 2. 3. 4. 5. 6. 7. 8. 9.设计目的?3 功能描述?3 大体思想?3 程序框图?4 主要知识点?5 重要的MFC ?5 数据结构?6 主要函数?7 代码实现?710. 运行界面?18 11. 总结?19 12. 参考文献?20概述此次课程设计我利用MFC制作了一个贪吃蛇游戏,运行程序时窗口会自动最大化,游戏会根据贪吃蛇身体的长度自动增加难度,而且单机右键可以出现坐标。我还添加了bmp格式的图片作为游戏背景。1 设计目的 通过实践进一步领会程序设计的特点和应用,提高运用C+ 以及面向对象知识解决实际问题的能力,初步掌握MFC变成的基本功能。 通过实践加强对程序设计语言课程知识点的理解和掌握,培养对课程知识综合运用能力、实际分析问题能力及编程能力,养成良好的编程习惯。 通过实践掌握用C+ 编写面向对象的实用程序的设计方法,对面向对象方法和思想增加感性的认识;学会利用C+程序设计语言编写出一些短小、可靠的Windows实用程序,切实提高面向对象的程序设计能力,为后续的相关课程的学习打下基础。2 功能描述 运行程序,窗口会自动最大化,出现bmp格式图片的背景。 点击“游戏-游戏开始”,出现围墙界面,一条蛇在密闭的围墙内,在围墙内随机出现一个食物,游戏开始。 游戏开始后,界面右下角会出现游戏规则。 游戏开始后,界面右下角会同步游戏得分。 通过四个方向键控制蛇的运动方向,吃掉随机出现的豆子,若不小心碰到墙壁或者与自身相交,则该轮游戏结束。 点击“游戏-游戏暂停”,暂停游戏。 点击“游戏-游戏继续”,继续游戏。 游戏会根据蛇身的长度自动调节难易程度。 点击“游戏-游戏退出”,退出游戏。 在界面中右键单击鼠标可以显示光标的当前坐标。 单击帮助-游戏规则查看游戏规则。3 大体思想 定义蛇类和食物类,初始化贪吃蛇各项成员变量,包括图像的出现在屏幕的初始位置,长度,以及蛇的行走方向。食物类的定义包括出现的初始位置,以及食物是否被吃掉的判断。 用数组初始化长度为3的贪吃蛇,并且默认食物未出现 在CView类上运用MFC提供的Windows消息中WM_TIMER消息,运用OnTimer()函数让系统提供一个时钟节拍,更新游戏 具体游戏实现,包括蛇撞到自己和围墙都将使游戏结束,判断吃豆等,其中还包括根据蛇的长度来进行游戏难度的改变。 具体键盘游戏操作运用到Windows消息响应中的WM_KEYDOWN,用OnKeyDown()来响应玩家的实际操作。 界面会自动最大化 而且单击右键可以出现坐标 添加了bmp格式的图片作为游戏背景。4 程序框图4.1 整体框架图 4.2 游戏控制模块框架图 5 主要知识点 CView类中的消息响应 控件的消息响应 基于CView类内的具体游戏实现 数组 游戏图形的实现用CDC类实现 SDI界面窗口样式的设计 文本的显示6 重要的MFC CWnd:窗口,它是大多数“看得见的东西”的父类(Windows里几乎所有看得见的东西都是一个窗口,大窗口里有许多小窗口),比如视图CView、框架窗口CFrameWnd、工具条CToolBar、对话框CDialog、按钮CButton,etc;一个例外是菜单(CMenu)不是从窗口派生的。该类很大,一开始也不必学,知道就行了。 CDocument文档,负责内存数据与磁盘的交互。最重要的是OnOpenDocument(读入),OnSaveDocument(写盘),Serialize(读写) CView视图,负责内存数据与用户的交互。包括数据的显示、用户操作

温馨提示

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

最新文档

评论

0/150

提交评论