扫雷游戏制作PPT
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
20
三、总体设计
• 3、鼠标事件 • 鼠标左击事件流程图 • (1)点击未知区域。 • (2)是地雷,游戏结束。 • (3)不是地雷,判断周围地雷数目是否为0,为0则显
示空白格子,并拓展周围格子,不为0则显示地雷数。 • 流程图说明:数据的起始和结束用圆角矩形
8
二、需求分析
2、功能需求: • (1)雷区上部左侧显示总雷数,并减去被
标明有雷区域的数目。 • (2)雷区上部中间位置显示一按钮用于
开局和显示鼠标动作的结果。 • (3)雷区上部右侧显示扫雷的时间。
9
二、需求分析
• 2、功能需求: • (4)将雷全部扫清后,则显示一对话框将
你的姓名记入排行榜。以时间排序。 • (5)点击鼠标左键于未知区域,如果未知
一、分析扫雷游戏的基本功能
• 2、从操作上分析:
鼠标
单击 右击 双击
点击鼠标右键于未知 区域,则显示小红旗, 将其置为有雷。在该 位置再次点击右键则 视为不确定,显示问 号,点击第三次,取 消设置,问号消失。
4
一、分析扫雷游戏的基本功能
• 2、从操作上分析:
鼠标
单击 右击 双击
如果该数字方块周围 地雷已经完全标识出, 双击该数字所在方块, 将快速翻开所有周围 不是地雷的方块,并 显示,直到有雷为止。
7
二、需求分析
• 1、功能概述: • 如果编号方块周围地雷没有全部标记,在
同时点击鼠标左右键时,其他隐藏或未标 记的方块将被按下一次(即闪烁一下)。 当玩家将所有地雷找出后,其余的非雷方 块区域都已打开,此时游戏胜利。在游戏 过程中,一旦错误地打开了雷方块则立即 失败,游戏结束;当玩家标识的地雷数超 过程序设定,虽然打开了全部其余方块, 游戏仍然不会结束。
扫雷游戏制作
1
一、分析扫雷游戏的基本功能
• 1、从外观上分析: • 方块 • 笑脸 • 地雷数目显示 • 计时器 • 有雷标识 • 无雷标识 • 红旗显示 • 胜利画面 • 失败画面
2
一、分析扫雷游戏的基本功能
• 2、从操作上分析:
鼠标
单击 右击 双击
Baidu Nhomakorabea
点击鼠标左键于未知 区域,如果未知区域 有雷,游戏停止,显示 所有的地雷。如果没 雷,则显示周围雷数, 如果周围没雷,则再 查看周围八个区域是 否有雷直到有雷为止, 并显示雷的数目。 3
区域有雷,游戏停止,显示所有的地雷。如 果没雷,则显示周围雷数,如果周围没雷,则 再查看周围八个区域是否有雷直到有雷为 止,并显示周围雷的数目。
10
二、需求分析
• 2、功能需求: • (6)点击鼠标右键于未知区域,则显示小
红旗,将其置为有雷。在该位置再次点击 右键则视为不确定,显示问号,点击第三 次,取消设置,问号消失。 • (7)如果该数字方块周围地雷已经完全标 识出,双击该数字所在方块,将快速翻开 所有周围不是地雷的方块,并显示,直到 有雷为止。
11
二、需求分析
• 3、功能模块: • (1)游戏界面 • (2)布雷 • (3)鼠标事件 • (4)地雷判断 • (5)游戏胜利 • (6)游戏结束
12
二、需求分析
• 3、功能模块: • (7)游戏设置。 • (8)查看英雄榜,帮助。
13
三、总体设计
• 1、游戏总体流程图 • 用圆角矩形代表数据开始和结束。 • 用矩形代表数据处理。 • 用菱形代表判断。 • 用带方向的箭头代表数据流向。
14
三、总体设计
• 游戏总体流程图
15
三、总体设计
• 1、游戏界面 • (1)提示区 • (2)雷区
16
三、总体设计
• 2、游戏界面
17
三、总体设计
• 2、布雷
(1) 算法的设计
把整个雷区看成一个二维数组,a[i][j]周围的 雷个数是由如下8个雷区决定的(如果超出边界,应 该再加以判断):
5
二、需求分析
• 1、功能概述: • 按功能将游戏区域分成两个区域:雷区和
提示区。提示区包括一个计数器和一个按 键操作。游戏过程中,当玩家用鼠标点击 相应的方块,程序就会作出相应的鼠标响 应事件,而众多鼠标事件的处理,都是围 绕着实现扫雷程序的算法而衍生的。
6
二、需求分析
• 1、功能概述: • 游戏开始时,系统会在雷区的某些小方块
a[i-1][j-1], a[i-1][j], a[i-1][j+1],
a[i][j-1],
a[i][j+1],
a[i+1][ j-1], a[i+1][j], a[i+1][j+1],
在被展开时,检查周围的雷数是否与周围标示出 来的雷数相等,如果相等则展开周围未标示的雷区。 这样新的雷区展开又触发这个事件,就这样递归下 去,一直蔓延到不可展开的雷区。
中随机布下若干个地雷。安放好地雷的小 方块称之为雷方块,其他的称之为非雷方 块。部署完毕后,系统会在其他非雷方块 中填充一些数字。某一个具体数字表示与 其紧邻的8个方块中有多少雷方块。玩家可 以根据这些信息去判断是否可以打开某些 方块,并把认为是地雷的方块打上标识。 如果某个数字方块周围的地雷全都标记完, 可以指向该方块并同时点击鼠标左右键, 将其周围剩下的方块挖开。
• int roundnum;/*统计格子周围有多少雷*/
• int flag;/*右键按下显示红旗的标志,0没有红旗 标志,1有红旗标志*/
• }Mine[10][10];然后定义雷方块的状态类别和属性类
别。
19
三、总体设计
• 2、布雷 • (3) 布雷流程图
randomize(); /*初始化随机数发生器
18
三、总体设计
• 3、布雷
• (2) 核心算法的实现
• 整个游戏程序包含3个阶段:布雷、扫雷过程和结果 (并不是操作结果展示,而是在扫雷过程中,玩家通 过与游戏交互后的操作结果展示)。
• 首先定义雷方块的数据结构,具体描述如下所示。
• struct
• { int num;/*格子当前处于什么状态,1有雷,0已 经显示过数字或者空白格子*/
*/
for(i=0;i<=10;i++)
for(j=0;j<=10;j++)
{Mine[i][j].num=2;/*表示没有地
雷*/
Mine[i][j].flag=0;}/*表示没红
旗标志*/
while(1)
{ i=random(100)%10;
j=random(100)%10;
if(Mine[i][j].num!=1)