没想到竟然有人不会玩扫雷!
一,认识棋盘已经棋盘中数字的意义
我们点击棋盘上任意一个方块,将会获得一片已知区域
棋盘上的数字是指以该数字为中心每 3×3 区域内所存在的雷。以下绿圈代表中心,红框代表绿圈中数字所代表的范围,以后都将红框称为该数字的覆盖范围简称覆盖范围。
这个 3×3 区域存在三种情况:
㈠完整 3×3 区域
㈡中心位于除四个角落外的边界上 3×2 或 2×3 区域
㈢中心位于四个角落 2×2 区域
如何通过数字去判断雷所在的位置
我们用下图作为参照
开局(点击第一个未知区域)后不难发现棋盘变成了两部分,不妨将黑灰色区域称为已知区域(Known regions),白色区域称为未知区域(unKnown regions)。
观察后不难发现任一数字的覆盖范围内所存在我未知区域是不同的且至少存在一个未知区域最多存在 8 个未知区域。
接下来我们要通过数字的覆盖范围和未知区域之间的联系去判断雷的具体位置。
如图,以绿圈中的 1 作为中心的覆盖范围内只有一个未知区域,那么这个未知区域必然是雷的位置
接下来更换中心
由于绿圈 2 位于棋盘边界它的覆盖范围为 3×2,其范围内有 2 个未知区域,因为 2 代表的是覆盖范围内雷的数量,所以其覆盖范围内的未知区域必然是雷的位置。
再看
绿圈 3 的覆盖范围内有 3 个未知区域,那么同理这 3 个未知区域也必然是雷的位置。
我们可以得出结论:如果一个数字的覆盖范围内存在的未知区域数量与该数字相同,则该数字范围内的未知区域皆为雷。
这样我们通过一个数字就定位到了雷的位置。
如果是以下情况该如何判断呢?
我们发现未知区域被红框和绿框分隔成了两个区域
接下来我们要在这两个区域内找出一个雷去满足两个覆盖范围的条件,不难发现这个雷只能位于横向的位置区域内,所以大胆点开竖向位置区域去查看信息
这样通过多个覆盖范围的交集就确定了雷的位置。
好了,你已经学会了扫雷最基本的方法了,接下来你去发现更简单快捷的算法吧