多图警告⚠,然后没有代码,这期主要说原理
各位早上中午下午傍晚晚上半夜凌晨好啊,我自从开设这个网站以来,都还没敲过代码,那我今天就试一下能不能写出一篇雅俗共赏(草)的文章。
好了废话说多点,这样*(@¥&(#&……¥(3
来♂骚♂雷
要想了解扫雷,先要把游戏规则搞懂先(其实大部分人都会的,但是为了凑字#……&¥*#&4678#……&%)
游戏规则
这是一个16x30的“雷区”,当它创建的时候,所有的都是没有点开的,现在,点开其中一个格子,出现了许多的数字,这些数字就是提示你周围的雷数
下面,我将详细介绍数字的意义,以这一块区域为例
注意,已经探索过的格子是浅色的(包括那些数字所在的),这意味着不会有任何的雷在里面,故可以忽略不看
最中心的1代表周围的8个方块中,有其中1个是雷;
如果是2,那就是周围的8个方块中,有其中2个是雷,以此类推
再回到这张图,周围的方块已被圈起来,那么看,其中有7个方块是已被探索过的,只剩下一个
又根据数字1,可以得出剩下的一定是雷,所以我们把它做上记号(为了我截图方便,就没插旗子)
注意:对于边界来说,数字虽然也是周围8个方块,但是你去扫雷时不需要考虑超出边界的方块,这也意味着最大的数字不会超过5
现在,把范围扩大
可以看到,第三行这个1(从上往下数)周围有一个已经是雷了,根据数1,判断出除了那个已经被标记为雷的,其余均不是雷
所以大胆点开就对了😎
接下来看上面,这个2如何解?有3个未知
其实没必要看2,看下旁边的1,周围都是已被探索的,只剩下一个,所以那个是雷
这样,刚刚好,那个雷就是在数字2周围8方块内,结合第一次判断出来的雷,总共一定是2
这就通过转移的方法解决了2的问题
所以,转换思想在扫雷里是非常重要的,建议开始就先从1开始扫起,从小到大,如果没有1,建议找未知的方块与数字相接近的方块
但是,在一些刁钻的角度里边,部分的方块是需要蒙的,例如一堆雷里边有一个方块
如果这个方块没被打开,是不会判断赢的
恭喜!你差不多了解了扫雷游戏的规则,然后,我们了解下他的工作原理吧
游戏工作原理
开局
开局(新建游戏)是不会生成任何雷的,因为要避免这一种情况……
如果你第一次点击就被雷搞死了,那确实没有任何游戏体验
不过喜欢没有游戏体验的同学可以选择这么做
所以,只有在你第一次点击时,才会开始尝试生成雷
但是有人要问了:为啥自定义9x9地图的时候雷数只能最高67不能81?
这是因为:
在第一次点击的时候,需要创建一个以自己为中心的3x3区域来得到“无敌”效果
就像这样:
这时又有人说了:你这81-9也才72,67哪来的??
就是这么来的:72-67=5
除了3x3的区域,仍然会有这种未被探索的安全方块
我目前还是没有弄清楚自定义雷数与地图大小的关系,如果知道的,可以去bilibili私信轰炸我
🔗:https://space.bilibili.com/313758599
所以由于这个恶心人的问题,咱们先不谈自定义的雷数,先从9x9的地图开始
游戏过程
当你点击一个数字为“0”的方块时(一般不会显示数字),周围8个都会开启,因为代表的意义就是周围8个都不是雷
如果周围又有一个是“0”的方块时,那么它又会将它周围8个方块开启,一次循环下去,直到没有“0”方块时(就是周围都是有数字时)
就像一开始这个图一样:
在侦测“0”方块时,边界不考虑在内,如果一个“0”方块在边界附近,那么边界外的方块是不会在侦测范围内的
当你第一次按下去时,其实已经布雷了,这也意味着你第二步就会死,所以……
对于布雷的机制,随机而已,下一张就会讲到,大概也非常简单
判断胜利
扫雷胜利条件很简单:
只要打开所有不是雷的方块,即可获胜,如下图
或者
但如果你虽然知道这里有雷,但是周围的方块没有被打开,是无法获胜的,如图
死亡
顾名思义,踩到了雷就会死,当然下文的一些操作也可以让你不踩到雷就死
还是这张图,可以看到:
玩家死后所有的雷都会出来,同时标错的旗子(下文有介绍)也会指出来
游戏操作
左键
没啥好说的,左键就是开雷,至于说点击之后的反应,那就看上文:游戏过程
右键
第一次按下会产生一个小旗子(🚩)第二次按下会将🚩变成❓
旗子
无法再次被左键打开
标记工具,这样你可以清晰地看清哪里有雷(标错了也有可能),如果标错,就会在死亡时提示你这个🚩标错了
如果你的旗子都刚刚好插正确了,但是超出了雷数,那也不会胜利,因为仍然有一个不是雷,如图
问号
无法再次被左键打开
同样是标记工具,但是不能作为是不是雷的标准(意思就是标问号不会影响剩余雷数的计算),因为它是给你在去开其他雷时提示你这里还没有做出选择
如图
左右键同时按
这是个很神奇的按键,它可以快速帮你打开周围的方块,但是代价还挺大
上图就是利用旗子和该按键组合完成的
插的旗子数必须满足点击数字的数
如果没有满足,那么点击是无用的
问号标识可以被该按键打开
这意味着如果你的旗子插错了,那你就会死亡
不考虑周围8个是否有雷
只考虑周围除了旗子都打开,所以说有时你没有点雷,但是却死亡了,就是这个原因
上图就把该按键的一些特性体现出来了
总结
如果你善于使用一些简便按键,那么你的速度将会大大提升,如下图
那么,这一期就结束了,写了2天,太多图了,做了很多实验,下一期!开始写代码!🤮