引言:
扫雷在科技历史上扮演了相似的角色。这个基于数字的逻辑谜题最早来自20世纪六七十年代,当时Jerimac Ratliff推出的名为“Cube”的游戏已经非常受人欢迎。几十年后的1992年,扫雷游戏被加入了Windows3.1,今天就让我们来使用C语言来实现这个游戏。
本章可能会用到的知识:
数组:C语言基础之数组大法
随机数的生成:利用分支与循环实现猜数字(下)
1.游戏规则
- 使用控制台实现经典的扫雷游戏
- 游戏可以通过菜单实现继续玩或者退出游戏
- 扫雷的棋盘是9*9的格子
- 默认随机布置10个雷
- 可以排查雷
a.如果位置不是雷,就显示周围有几个雷
b.如果位置是雷,就炸死游戏结束
c.把除10个雷之外的所有非雷都找出来,排雷成功,游戏结束
2.对于游戏实现的设计和些许分析
扫雷的过程中,布置的雷和排查出的雷的信息都需要存储,所以我们需要⼀定的数据结构来存储这些信息,于是我们需要创建⼀个9*9的数组布置雷的信息和排查雷。

那如果这个位置布置雷,我们就存放1,没有布置雷就存放0.

假设我们排查(6,1)这个坐标时,我们访问周围的⼀圈8个黄色位置,统计周围雷的个数是3(疯狂踩雷手动滑稽),但如果我们排查(8,4)这个坐标时,我们发现黄色出去了一部分不在我们预定的表格中,这就说明最下面的坐标越界了,为了防止在我们排查的时候有坐标出轨,在设计数组的时候我们选择多加一圈,作为“缓冲地”,在这里我们不设雷,这样我们在排查的时候就不会有出轨的现象存在了。
再继续分析,我们在棋盘上布置雷,棋盘上雷的信息1和非雷的信息0,假设我们排查了某一个位置后,这个坐标处不是雷,这个坐标的周围