《扫雷游戏制作》PPT课件

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

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