扫雷的规则这里就不介绍了
具体思路就是这下面的6张图。
分析
第一张图 -----扫雷游戏的棋盘
初始化一个二维数组。全部填充0。
注意 这里为了方便处理,需要把 最外面一圈当成边界。
可以给他填充一个数字 -2之类的
第二张图 ---- 初始化雷区
使用随机函数 产生行列索引。吧有雷的地方 赋值为-1
第三张图 ----初始化一个格子 附近有多少个雷。
用2个for 循环进行二位数组遍历,统计当前位置 附近的8个方向有多少个雷[有多少个-1],然后写进去。
第4张图 ------开始游戏,点击一个方块后的行为‘
首先把点击的方块转化为 行列 。便于我们对二维数组进行操作。
判断 当前位置的类型。
如果 是-1 也就是雷 就 直接暴毙
如果是 数字 就只打开当前格子
如果 是 空,就执行下一张图。
第5张图 ----点击的方块,方块的内容是0的行为
以当前为起点,进行 图的遍历。(建议广度优先遍历)
吧所有的内容 都存入一个 数组。
【为什么要这样子呢?看图我们会发现,黄色的区域就是遍历后的结果,对于游戏的效果就是 所有空白的方块一定会被打开】
第6张图 -----确定最终需要打开的内容
吧上面的那个数组。进行全部遍历。
对每个位置 进行 + 型的扩展。 吧扩展的内容+原先的那个存了 数字为0的数组 存入一个新数组
这个数组就是我们所求得的应该打开区域。
可以看到 游戏的核心就是对于这个二维数组的维护。
接下来 添加控件,按钮 什么的 只是为了 获得 信息 从而把 信息反映到对应二维数组上