本文仅帮助初学者提供一些小小的思路
首先,我们要先弄清楚扫雷这个游戏的规则,还有扫雷的游戏难度规格,思考棋盘的大小,并初步构思整个代码大概的写法,我们可以先找到扫雷的图像
从图像上我们可以看到,扫雷基础难度下,是一个9*9的棋盘方格,初步构思代码,1.我们可以创建一个9*9的二维数组,刚好就是这样一个棋盘方格,
2.然后我们在里面,通过rand()生成随机数的方式生成雷,并且放在创造的数组里面,需要搭配srand((unsigned int )time(NULL))
3.再输入两个坐标进行排雷,这里的坐标其实就是二维数组里面每个元素对应的下标,排完一次雷之后就把数组打印出来,并且,
4.按照扫雷的规则,如果排除的坐标不是雷,那么他将计算他所在九宫格的雷数,并且显示出来,此时可以写一个计算雷数的函数,再放进数组里面。
但是如果我们想要计算一个不是雷的九宫格的范围内雷的数量,假如我们看到一个输入的坐标是 第九行第九列的边界,此时无法正常计算,因为这是我们的数组边界,如果计算九宫格将会越界,那么我们可以重新创建数组的大小,将它改为11*11大小的数组, 此时,虽然是11*11的数组元素大小,但是通过下标我们可以只使用 9*9大小的数组元素,我们也不在最边界布置雷,这样也可以计算雷的数量。
此时我们可以初始化一下数组,不是雷的位置我们可以放 0 是雷的位置我们可以放数字1,先将数组元素全部初始化为零,再将随机数搭配生成的雷的数组位置换成1,但是不是雷的位置计算九宫格雷数返回数字时,和别的数字冲突了,又是2 或者又是1,看起来很乱也很奇怪,所以我们可以再创造一个二维数组,这里面同样是11*11的棋盘大小,我们可以把这个数组全部初始化为字符*,我们把九宫格计算的雷数字放在第二个数组里面 ,并且我们不再打印第一个数组,把第二个数组当做是玩家数组,玩家只能看见初始化后的字符*号棋盘,再输入一次坐标之后打印第二个初始化为字符*的二维数组,并且过程中会将计算好的雷数替换掉数组中输入坐标的字符*号,那么一个简易的扫雷就大功告成了。(每个位置对应的坐标可以通过下标的方式,打印出来,方便输入坐标)