基于QT的扫雷游戏设计与实现扫雷游戏答辩_第1页
基于QT的扫雷游戏设计与实现扫雷游戏答辩_第2页
基于QT的扫雷游戏设计与实现扫雷游戏答辩_第3页
基于QT的扫雷游戏设计与实现扫雷游戏答辩_第4页
基于QT的扫雷游戏设计与实现扫雷游戏答辩_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、答辩学生: 一、分析扫雷游戏的基本功能 ? 1、从外观上分析: ? 方块 ? 笑脸 ? 计时器 ? 有雷标识 ? 无雷标识 ? 胜利画面 ? 失败画面 一、分析扫雷游戏的基本功能 ? 2、从操作上分析: 鼠标 单击 右击 点击鼠标左键于未知 区域,如果未知区域有 雷,游戏停止,显示所 有的地雷。如果没雷, 则显示周围雷数,如果 周围没雷,则再查看周 围八个区域是否有雷 直到有雷为止,并显 示雷的数目。 一、分析扫雷游戏的基本功能 ? 2、从操作上分析: 鼠标 单击 右击 点击鼠标右键于未知 区域,则显示小红旗, 将其置为有雷。在该 位置再次点击右键则 视为不确定,显示问 号,点击第三次,取 消

2、设置,问号消失。 二、需求分析 ? 1、功能概述: ? 按功能将游戏区域分成两个区域:雷区和 提示区。提示区包括一个计数器和一个按 键操作。游戏过程中,当玩家用鼠标点击 相应的方块,程序就会作出相应的鼠标响 应事件,而众多鼠标事件的处理,都是围 绕着实现扫雷程序的算法而衍生的。 二、需求分析 ? 1、功能概述: ? 游戏开始时,系统会在雷区的某些小方块 中随机布下若干个地雷。安放好地雷的小 方块称之为雷方块,其他的称之为非雷方 块。部署完毕后,系统会在其他非雷方块 中填充一些数字。某一个具体数字表示与 其紧邻的8个方块中有多少雷方块。玩家可 以根据这些信息去判断是否可以打开某些 方块,并把认为

3、是地雷的方块打上标识。 如果某个数字方块周围的地雷全都标记完, 可以指向该方块并同时点击鼠标左右键, 将其周围剩下的方块挖开。 二、需求分析 ? 1、功能概述: ? 如果编号方块周围地雷没有全部标记,在 同时点击鼠标左右键时,其他隐藏或未标 记的方块将被按下一次(即闪烁一下)。 当玩家将所有地雷找出后,其余的非雷方 块区域都已打开,此时游戏胜利。在游戏 过程中,一旦错误地打开了雷方块则立即 失败,游戏结束;当玩家标识的地雷数超 过程序设定,虽然打开了全部其余方块, 游戏仍然不会结束。 二、需求分析 2、功能需求: ? (1)雷区上部左侧显示总雷数,并减去被 标明有雷区域的数目。 ? (2)雷区

4、上部中间位置显示一按钮用于开 局和显示鼠标动作的结果。 ? (3)雷区上部右侧显示扫雷的时间。 二、需求分析 ? 2、功能需求: ? (4)将雷全部扫清后,则显示一对话框将你 的姓名记入排行榜。以时间排序。 ? (5)点击鼠标左键于未知区域,如果未知区 域有雷,游戏停止,显示所有的地雷。如果没 雷,则显示周围雷数,如果周围没雷,则再查看 周围八个区域是否有雷直到有雷为止,并 显示周围雷的数目。 二、需求分析 ? 2、功能需求: ? (6)点击鼠标右键于未知区域,则显示小红 旗,将其置为有雷。在该位置再次点击右 键则视为不确定,显示问号,点击第三次, 取消设置,问号消失。 ? (7)如果该数字方

5、块周围地雷已经完全标 识出,双击该数字所在方块,将快速翻开 所有周围不是地雷的方块,并显示,直到 有雷为止。 二、需求分析 ? 3、功能模块: ? (1)游戏界面 ? (2)布雷 ? (3)鼠标事件 ? (4)地雷判断 ? (5)游戏胜利 ? (6)游戏结束 二、需求分析 ? 3、功能模块: ? (7)游戏设置。 ? (8)查看英雄榜,帮助。 三、总体设计 ? 1、游戏总体流程图 ? 用圆角矩形代表数据开始和结束。 ? 用矩形代表数据处理。 ? 用菱形代表判断。 ? 用带方向的箭头代表数据流向。 三、总体设计 ? 游戏总体流程图 三、总体设计 ? 1、游戏界面 ? (1)功能栏 ? (2)雷区

6、 ? (3)计时器 ? (4)状态栏 三、总体设计 ? 2、布雷 (1) 算法的设计 把整个雷区看成一个二维数组,aij周围的雷个数 是由如下8个雷区决定的(如果超出边界,应该再加 以判断): ai-1j-1 , ai-1j, ai-1j+1, aij-1 , aij+1, ai+1 j-1 , ai+1j, ai+1j+1, 在被展开时,检查周围的雷数是否与周围标示出来 的雷数相等,如果相等则展开周围未标示的雷区。 这样新的雷区展开又触发这个事件,就这样递归下 去,一直蔓延到不可展开的雷区。 三、总体设计 ? 3、布雷 ? (2) 核心算法的实现 ? 整个游戏程序包含3个阶段:布雷、扫雷过程

7、和结果 (并不是操作结果展示,而是在扫雷过程中,玩家通 过与游戏交互后的操作结果展示)。 ? 首先定义雷方块的数据结构,具体描述如下所示。 ? struct ? int num;/*格子当前处于什么状态,1有雷,0已经显 示过数字或者空白格子*/ ? int roundnum;/*统计格子周围有多少雷*/ ? int flag;/*右键按下显示红旗的标志,0没有红旗标 志,1有红旗标志*/ ? Mine1010;然后定义雷方块的状态类别和属性类别。 三、总体设计 ? 3、鼠标事件 ? 鼠标左击事件流程图 ? (1)点击未知区域。 ? (2)是地雷,游戏结束。 ? (3)不是地雷,判断周围地雷数

8、目是否为)不是地雷,判断周围地雷数目是否为0,为0则显则显 示空白格子,并拓展周围格子,不为示空白格子,并拓展周围格子,不为0则显示地雷数。则显示地雷数。 ? 流程图说明:数据的起始和结束用圆角矩形流程图说明:数据的起始和结束用圆角矩形 数据的处理用矩形 表示判断用菱形 数据流向用带方向箭头表示 鼠标左击事件流程图鼠标左击事件流程图 空白格子拓展空白格子拓展 (0,0) (0,1) (0,2) (0,3) (0,4) (0,5) (0,6) (0,7) (0,8) (0,9) (1,0) (1,1) (1,2) (1,3) (1,4) (1,5) (1,6) (1,7) (1,8) (1,9)

9、 (2,0) (2,1) (2,2) (2,3) (2,4) (2,5) (2,6) (2,7) (2,8) (2,9) (3,0) (3,1) (3,2) (3,3) (3,4) (3,5) (3,6) (3,7) (3,8) (3,9) (4,0) (4,1) (4,2) (4,3) (4,4) (4,5) (4,6) (4,7) (4,8) (4,9) (5,0) (5,1) (5,2) (5,3) (5,4) (5,5) (5,6) (5,7) (5,8) (5,9) (6,0) (6,1) (6,2) (6,3) (6,4) (6,5) (6,6) (6,7) (6,8) (6,9)

10、 (7,0) (7,1) (7,2) (7,3) (7,4) (7,5) (7,6) (7,7) (7,8) (7,9) (8,0) (8,1) (8,2) (8,3) (8,4) (8,5) (8,6) (8,7) (8,8) (8,9) (9,0) (9,1) (9,2) (9,3) (9,4) (9,5) (9,6) (9,7) (9,8) (9,9) 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1

11、 1 2 2 1 1 2 1 2 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 0 0 1 1 1 1 2 2 2 2 2 2 1 1 1 1 0 0 1 1 1 1 2 2 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 (0,0) (0,1) (0,2) (0,3) (0,4) (0,5) (0,6) (0,7) (0,8) (0,9) (1,0) (1,1) (1,2) (1,3) (1,4) (1,5) (1,6) (1,7) (1,8) (1,9)

12、 (2,0) (2,1) (2,2) (2,3) (2,4) (2,5) (2,6) (2,7) (2,8) (2,9) (3,0) (3,1) (3,2) (3,3) (3,4) (3,5) (3,6) (3,7) (3,8) (3,9) (4,0) (4,1) (4,2) (4,3) (4,4) (4,5) (4,6) (4,7) (4,8) (4,9) (5,0) (5,1) (5,2) (5,3) (5,4) (5,5) (5,6) (5,7) (5,8) (5,9) (6,0) (6,1) (6,2) (6,3) (6,4) (6,5) (6,6) (6,7) (6,8) (6,9)

13、 (7,0) (7,1) (7,2) (7,3) (7,4) (7,5) (7,6) (7,7) (7,8) (7,9) (8,0) (8,1) (8,2) (8,3) (8,4) (8,5) (8,6) (8,7) (8,8) (8,9) (9,0) (9,1) (9,2) (9,3) (9,4) (9,5) (9,6) (9,7) (9,8) (9,9) 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 2 2 1 1 2 1 2 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

温馨提示

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

评论

0/150

提交评论