基于QT的扫雷游戏设计与实现扫雷游戏答辩.ppt

上传人(卖家):三亚风情 文档编号:3432909 上传时间:2022-08-31 格式:PPT 页数:24 大小:1MB
下载 相关 举报
基于QT的扫雷游戏设计与实现扫雷游戏答辩.ppt_第1页
第1页 / 共24页
基于QT的扫雷游戏设计与实现扫雷游戏答辩.ppt_第2页
第2页 / 共24页
基于QT的扫雷游戏设计与实现扫雷游戏答辩.ppt_第3页
第3页 / 共24页
基于QT的扫雷游戏设计与实现扫雷游戏答辩.ppt_第4页
第4页 / 共24页
基于QT的扫雷游戏设计与实现扫雷游戏答辩.ppt_第5页
第5页 / 共24页
点击查看更多>>
资源描述

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

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

3、的方块挖开。二、需求分析 1、功能概述:如果编号方块周围地雷没有全部标记,在同时点击鼠标左右键时,其他隐藏或未标记的方块将被按下一次(即闪烁一下)。当玩家将所有地雷找出后,其余的非雷方块区域都已打开,此时游戏胜利。在游戏过程中,一旦错误地打开了雷方块则立即失败,游戏结束;当玩家标识的地雷数超过程序设定,虽然打开了全部其余方块,游戏仍然不会结束。二、需求分析2、功能需求:(1)雷区上部左侧显示总雷数,并减去被标明有雷区域的数目。(2)雷区上部中间位置显示一按钮用于开局和显示鼠标动作的结果。(3)雷区上部右侧显示扫雷的时间。二、需求分析 2、功能需求:(4)将雷全部扫清后,则显示一对话框将你的姓名

4、记入排行榜。以时间排序。(5)点击鼠标左键于未知区域,如果未知区域有雷,游戏停止,显示所有的地雷。如果没雷,则显示周围雷数,如果周围没雷,则再查看周围八个区域是否有雷直到有雷为止,并显示周围雷的数目。二、需求分析 2、功能需求:(6)点击鼠标右键于未知区域,则显示小红旗,将其置为有雷。在该位置再次点击右键则视为不确定,显示问号,点击第三次,取消设置,问号消失。(7)如果该数字方块周围地雷已经完全标识出,双击该数字所在方块,将快速翻开所有周围不是地雷的方块,并显示,直到有雷为止。二、需求分析 3、功能模块:(1)游戏界面(2)布雷(3)鼠标事件(4)地雷判断(5)游戏胜利(6)游戏结束二、需求分

5、析 3、功能模块:(7)游戏设置。(8)查看英雄榜,帮助。三、总体设计 1、游戏总体流程图 用圆角矩形代表数据开始和结束。用矩形代表数据处理。用菱形代表判断。用带方向的箭头代表数据流向。三、总体设计 游戏总体流程图三、总体设计 1、游戏界面(1)功能栏(2)雷区(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,在被展开时,检查周围的雷数是否与周围标示出来的雷数相等,如

6、果相等则展开周围未标示的雷区。这样新的雷区展开又触发这个事件,就这样递归下去,一直蔓延到不可展开的雷区。三、总体设计 3、布雷(2)核心算法的实现核心算法的实现 整个游戏程序包含3个阶段:布雷、扫雷过程和结果(并不是操作结果展示,而是在扫雷过程中,玩家通过与游戏交互后的操作结果展示)。首先定义雷方块的数据结构,具体描述如下所示。struct int num;/*格子当前处于什么状态,1有雷,0已经显示过数字或者空白格子*/int roundnum;/*统计格子周围有多少雷*/int flag;/*右键按下显示红旗的标志,0没有红旗标志,1有红旗标志*/Mine1010;然后定义雷方块的状态类别

7、和属性类别。三、总体设计 3、鼠标事件 鼠标左击事件流程图鼠标左击事件流程图(1)点击未知区域。)点击未知区域。(2)是地雷,游戏结束。)是地雷,游戏结束。(3)不是地雷,判断周围地雷数目是否为)不是地雷,判断周围地雷数目是否为0,为,为0则显则显示空白格子,并拓展周围格子,不为示空白格子,并拓展周围格子,不为0则显示地雷数。则显示地雷数。流程图说明:数据的起始和结束用圆角矩形流程图说明:数据的起始和结束用圆角矩形 数据的处理用矩形数据的处理用矩形 表示判断用菱形表示判断用菱形 数据流向用带方向箭头表示数据流向用带方向箭头表示鼠标左击事件流程图鼠标左击事件流程图空白格子拓展空白格子拓展(0,0

8、)(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)(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

9、)(6,1)(6,2)(6,3)(6,4)(6,5)(6,6)(6,7)(6,8)(6,9)(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 11 11 11 11 11 10 00 00 00 00 00 00 00 00 00 00 00 00 01 11 11 11 11 10 00 00 01 10 01 11 10 01 11 11

10、11 12 21 11 12 21 12 21 11 11 11 11 10 01 10 01 11 11 11 11 11 11 11 11 11 11 11 11 12 21 11 11 11 10 01 11 12 22 22 21 11 10 00 01 11 12 20 00 01 11 11 10 00 00 00 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)(2,0)(2,1)(2,2)(2,3)(2,4)(2,5)(2,6

11、)(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)(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

12、)(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 11 11 11 11 11 10 00 00 00 00 00 00 00 00 00 00 00 00 01 11 11 11 11 10 00 00 01 10 01 11 10 01 11 11 11 12 21 11 12 21 12 21 11 11 11 11 10 01 10 01 11 11 11 11 11 11 11 11 11 11 11 11 12 21 11 11 11 10 01 11 12 22 22 21 11 10 00 0

13、1 11 12 20 00 01 11 11 10 00 00 00 0i=3j=4 /*8个方向递归显示所有的空白格子*/if(i!=0&Minei-1j.num!=1)ShowWhite(i-1,j);if(i!=0&j!=9&Minei-1j+1.num!=1)ShowWhite(i-1,j+1);if(j!=9&Mineij+1.num!=1)ShowWhite(i,j+1);if(j!=9&i!=9&Minei+1j+1.num!=1)ShowWhite(i+1,j+1);if(i!=9&Minei+1j.num!=1)ShowWhite(i+1,j);if(i!=9&j!=0&Minei+1j-1.num!=1)ShowWhite(i+1,j-1);if(j!=0&Mineij-1.num!=1)ShowWhite(i,j-1);if(i!=0&j!=0&Minei-1j-1.num!=1)ShowWhite(i-1,j-1);谢谢各位评委老师!谢谢各位评委老师!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(基于QT的扫雷游戏设计与实现扫雷游戏答辩.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|