- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
扫雷游戏实验报告1.
简易版扫雷游戏实验报告
一、 问题描述
模仿windows扫雷游戏,开发一个简易版扫雷游戏系统。
二、功能分析
总体游戏过程分析:在屏幕中央位置显示一个雷区,雷区范围内预先埋设了一定数量的随机分布的地雷;玩家通过上下左右键控制光标在雷区的各个小方块之间移动并做标记;若能正确标记出雷区中的所有地雷,则游戏胜利;否则踩雷,游戏失败。
简易版扫雷游戏要具备以下功能:
开局:首先选择游戏等级,然后生成不同等级的雷区界面。游戏等级分为三级:各等级方块数为——初级:8×8、中级:16×16、高级:24×24;各级地雷数=总方块数/6;雷区每个方块下面或埋藏有1个地雷,或者没有地雷;
挖雷:将光标移到某个方块,并按空格或回车键,可挖开它;若所揭方块下有雷,则踩雷,此时所有含地雷的块都标记?,该局游戏失败;如果方块上出现数字,它代表在它周围的8个方块中共有多少颗地雷;
标记地雷:在光标所在的某个方块上按F或f键,则标记此块下埋着地雷(实际上可能是误标),显示为F。每标记一个地雷,地雷数减少1;
标记疑问:在光标所在的某个方块上按Q或q键,则在某方块上面标一个问号(?),意味着没有把握判定它是否有雷。标记为?的块可在恰当的时候再按标记地雷或挖开;
自动挖开:如果某个数字方块周围的地雷全都标记完,则在该方块上按A或a键,将其剩下的方块挖开;
输入:通过键盘输入相关指示信息;
输出:提示游戏是否成功,是否继续。
三、程序设计
扫雷游戏系统的顶层层次图如下:
从以下几方面“自顶向下”进一步逐步求精:
继续分析已有功能,直到精化出所有子功能,确定模块间接口;
描述精化后每个模块的处理过程;
确定主要的数据及其数据结构;
确定输入输出数据的内外部形式;
界面的设计
以下是详细设计:
(1)确定游戏的界面。游戏屏幕中央显示由小方块组成的雷区,小方块的背景显示为浅灰,表示该方块没有被挖开或标记;小方块的背景显示为深灰,表示它已经被挖开或标记为“F”、“?”或“*”;当选中一个方块要操作时,它的边框线为红色。在屏幕的左上方显示游戏是否成功等信息,这也是游戏结果的表现形式。如图2所示。
(2)决定游戏的输入方式。采用键盘,通过光标的移动来选择操作的小方块,根据所敲击的键值来选择游戏的功能。
下面是对键盘功能键的定义:
上,下,左,右键用来移动光标的位置;
回车或者空格键用来挖开光标当前指向的一个方块;
F, f 标记当前光标指向的方块有地雷;
Q, q 在光标指向方块打一个问号,表示可能有地雷;
A , a 自动挖开光标周围的方块;
ESC 退出游戏。
(3)确定主要的数据,这里主要是有关雷区的数据。
雷区界面数据
int MAXCOL=640; /*屏幕最大宽度*/
int MAXROW=480; /*屏幕最大高度*/
#define _ROW 24 /*雷区最多方块行数*/
#define _COL 24 /*雷区最多方块列数*/
int ROW=8; /*当前游戏雷区行数*/
int COL=8; /*当前游戏雷区列数*/
#define SIZEX 20 /*雷区方块的水平大小(像素数)*/
#define SIZEY 20 /*雷区方块的垂直大小(像素数)*/
#define STARTX (MAXCOL-COL*SIZEX)/2 /*水平起始位置*/
#define STARTY (MAXROW-ROW*SIZEY)/2 /*垂直起始位置*/
雷区内部数据
int totalMine; /* 整个雷区所含的地雷总数*/
int table[_ROW][_COL]; /* 数组table的每个元素值记录了雷区对应方块是否有雷:1表示有雷,0表示没有雷*/
int num[_ROW][_COL];
/* 数组num的每个元素值记录了雷区对应方块周围有多少个地雷*/
int flag[_ROW][_COL];
/* 数组flag的每个元素值记录了雷区对应方块当前的状态*/
在整个系统中table[_ROW][_COL]、num[_ROW][_COL]、flag[_ROW][_COL]是最核心的数据,是雷区的内部表示,游戏的挖雷、标记雷、标记疑问、自动挖开等界面操作,在内部实际上是对这些数据的操作。
方块(i,j)的状态取值:
#define UNFLAG 0 /* 表示该方块还没有被打开或者标记*/
#define FLAGED 1 /* 标记该方块有地雷*/
#define QUESTION 20 /* 表示该方块可能有地雷*/
#define EXPLOD 30 /
您可能关注的文档
- 扩底桩施工工艺技术要求..doc
- 扩展的D-P材料模式..doc
- 扩建吴中大道施工组织设计..doc
- 扩张器疲劳试验机TLS-PL..doc
- 扩招利弊辩论..doc
- 扩张性心肌病心电图表现的新老理念..docx
- 扩散性铝化物涂层及制备工艺..doc
- 扩散操作工作业指导书..doc
- 扩张原理与F数..doc
- 扩散焊等古老工艺焕发新活力..doc
- 《GB/T 32151.42-2024温室气体排放核算与报告要求 第42部分:铜冶炼企业》.pdf
- GB/T 32151.42-2024温室气体排放核算与报告要求 第42部分:铜冶炼企业.pdf
- GB/T 38048.6-2024表面清洁器具 第6部分:家用和类似用途湿式硬地面清洁器具 性能测试方法.pdf
- 中国国家标准 GB/T 38048.6-2024表面清洁器具 第6部分:家用和类似用途湿式硬地面清洁器具 性能测试方法.pdf
- 《GB/T 38048.6-2024表面清洁器具 第6部分:家用和类似用途湿式硬地面清洁器具 性能测试方法》.pdf
- 《GB/T 18238.2-2024网络安全技术 杂凑函数 第2部分:采用分组密码的杂凑函数》.pdf
- GB/T 18238.2-2024网络安全技术 杂凑函数 第2部分:采用分组密码的杂凑函数.pdf
- 《GB/T 17215.686-2024电测量数据交换 DLMS/COSEM组件 第86部分:社区网络高速PLCISO/IEC 12139-1配置》.pdf
- GB/T 13542.4-2024电气绝缘用薄膜 第4部分:聚酯薄膜.pdf
- 《GB/T 13542.4-2024电气绝缘用薄膜 第4部分:聚酯薄膜》.pdf
文档评论(0)