基于MFC的贪吃蛇程序设计(课程设计) 报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《MFC应用程序设计》课程设计报告

题目:

学院:

专业:

班级:

姓名:

学号:

指导教师:

评阅成绩:

二0 年月日

目录

概述 (3)

1.设计目的 (3)

2.功能描述 (3)

3.大体思想 (3)

4.程序框图 (4)

5.主要知识点 (5)

6.重要的MFC (5)

7.数据结构 (6)

8.主要函数 (7)

9.代码实现 (7)

10.运行界面 (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视图,负责内存数据与用户的交互。包括数据的显示、用户操作的

响应(如菜单的选取、鼠标的响应)。最重要的是OnDraw(重画窗口),通常用CWnd::Invalidate()来启动它。另外,它通过消息映射表处理菜单、工具条、快捷键和其他用户消息。你自己的许多功能都要加在里面,你打交道最多的就是它。

⑷CDC设备文本。无论是显示器还是打印机,都是画图给用户看。这图就抽

象为CDC。CDC与其他GDI(图形设备接口)一起,完成文字和图形、图

像的显示工作。把CDC想象成一张纸,每个窗口都有一个CDC相联系,负责画窗口。CDC有个常用子类CClientDC(窗口客户区),画图通常通过CClientDC完成。

⑸CDialog对话框

⑹CWinApp应用程序类。似于C中的main函数,是程序执行的入口和管理

者,负责程序建立、消灭,主窗口和文档模板的建立。最常用函数

InitInstance():初始化。

⑺CGdiObject及子类,用于向设备文本画图。它们都需要在使用前选进DC

⑻CPen笔,画线

⑼CBrush刷子,填充

⑽CFont字体,控制文字输出的字体

⑾CBitmap位图

⑿CPalette调色板

⒀CRgn区域,指定一块区域可以用于做特殊处理。

⒁CFile文件。最重要的不外是Open(打开),Read(读入),Write

⒂CString字符串。封装了C中的字符数组,非常实用。

⒃CPoint点,就是(x,y)

CRect矩形,就是(left,top,right,bottom)

7 数据结构

7.1 蛇的全局变量

struct Snake

{

int x,y;

int len;

int direct;

}Snake[50];

7.2 食物的全局变量

struct Food

{

int x;

相关文档
最新文档