欢迎来到天天文库
浏览记录
ID:33986519
大小:149.00 KB
页数:19页
时间:2019-03-03
《扫雷_课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、宿迁学院Windows程序设计课程考核报告班级:学号:姓名:得分:2013年12月20日目录1.设计目的及要求-------------------------------------11.1设计目的及问题描述-------------------------------11.2设计要求------------------------------------------11.3软件、硬件环境-----------------------------------12.课程设计步骤----------
2、----------------------------13.课程设计内容--------------------------------------13.1概要设计-----------------------------------------23.1.1程序总体框架描述------------------------------23.1.2程序常用类声明---------------------------------33.2主要技术-----------------------------
3、-------------43.3系统设计结果(界面截图、操作流程)------------134.设计总结-------------------------------------------164.1遇到的问题及如何解决----------------------------16-16-题目:扫雷游戏1.设计目的及要求1.1设计目的及问题描述系统地学习面向对象编程思想,了解MFC架构,逐步熟悉可视化编程环境VisualC++并在此环境下设计并实现一个简单扫雷游戏,该扫雷游戏应能实现如下功能:(
4、1)雷区上部左侧显示总雷数减被标明有雷区域的数目。(2)雷区上部中间位置显示一按钮用于开局和显示鼠标动作的结果。 (3)雷区上部右侧显示扫雷的时间。1.2设计要求(1)能独立搭建可视化程序编程环境,掌握VisualC++6.0的安装、运行和使用。(2)总体要求:用面向对象编程的思想与方法,实现一个扫雷游戏的分析与设计阶段的开发工作,开发工具使用VisualC++6。(3)编写设计方案,设计过程,源程序文件结构,分析实验方案,并对实验做出总结。1.3软件、硬件环境开发工具:MicrosoftVi
5、sualC++6.0软件和Windows2000/XP操作系统2.课程设计内容扫雷小游戏的开发与实现3.课程设计步骤步骤大致上可以分为三个部分,分别为:画面初始、游戏者按下第一个方块和为非地雷方块时展开。 画面初始时,以游戏者最后一次设定的地雷区大小为范围画出地雷区,但此时并未产生地雷。当游戏者按下第一个方块时产生地雷资料并启动定时器,为何在游戏者按下第一个方块才产生地雷资料呢?其主要的用意在于不要让游戏者第一次就踩到地雷,这样在某种程度上可以提高游戏者游玩的气氛。接着就是如何判断按下的方块是非地
6、雷时的处理,这也是整个游戏的技术核心,我们可以通过递归的观念来检查周边的方块是否含有地雷及是否继续往外翻开。-16-3.1概要设计相信大多数使用Windows操作系统的使用者,对这款游戏都不陌生。这款游戏不止操作简单,规则也不难,再加上游戏速度的控制机制得宜,让整个游戏在操作过程中充满了快乐与紧张的气氛。除了游乐当中能带给使用者快乐之外,游戏的设计内容无形中也不断训练使用者的逻辑思考能力,对于依靠高度脑力工作的现代人,都可以通过这个游戏,不时的检验一下自己,所以我们不难发现,在各种可携带的电子产品
7、上都有这款游戏的踪影。 当按下的方块不是地雷,且周边八个方块也都没有地雷时,方块会以被翻开方块的八个方向将空白方块翻开。3.1.1程序总体框架描述扫雷游戏的开发主要包括两大部分:一个部分是布雷,该部分主要将雷随机布置在游戏区域内,以避免出现相同的雷区布置地图。另一部分是扫雷,该部分包括判断鼠标左键点击某区域该区域是否是雷,如果是雷该如何操作,如果不是雷该如何操作,鼠标右键点击某区域时如果判断该区域是雷则加以标记,如果不是雷也加以标记,以及当鼠标双击某区域时,判断与该区域相邻的其它8个区域是否是雷并
8、做一个标记。扫雷游戏窗体类模块窗体加载构造函数鼠标左键鼠标右键画图函数鼠标点击函数开始函数递归函数图1系统功能图-16-3.1.2程序常用类声明首先定义一个雷类:classLei243//定义一个雷类{public:intweitu;//显示哪一个位图intshumu;//这个位置相应的值}; 接着是在View类添加变量和函数:intleftnum;//剩下雷数intleinum;//雷数intjieshu;//结束shortsecond;//计时intsecondstart;//
此文档下载收益归作者所有