扫雷怎样才能赢?
想赢扫雷,就只翻开你能证明安全的格子。沿着已翻开区域的边缘,先找雷已经全部插旗的数字,再找剩下的未翻开格子必须全是雷的数字。两者都不适用时,就比较相邻的数字。只有在无法证明任何一步时才去猜,并且选风险最低的格子。
扫雷实用技巧
- 先看容易的数字。已满足的数字和完全确定的数字,贡献了大部分的步骤。
- 学会五个定式。1-1、1-2、1-2-1、1-2-2-1 和减去旗子,能覆盖实战中很大一部分局面。去看看配有练习棋盘的扫雷定式。
- 卡住就换个地方。棋盘的其他部分往往会翻开新的信息,改变局面。
- 只给能证明的格子插旗。一面插错的旗会破坏它周围所有的推理。
- 检查之后再双击展开。只有旗都插对了,双击展开才能省时间。
- 残局再用雷数计数器。快结束时,剩余的雷数能解决局部数字解决不了的局面。
从信息出发,而不是迷信
在本站,你的第一个格子和它周围的格子都是安全的。从中间开局可以向多个方向翻出数字,从角落开局则需要照顾的相邻格更少。在随机模式下,两种选择都不能保证获胜。选一个你觉得好读的开局位置,然后专注于实际的数字。
沿着边界扫两遍
第一遍,找剩余雷数等于剩余未翻开格子数的数字:这些格子全是雷。第二遍,找雷数已经被确认的旗子满足的数字:它剩下的相邻格都是安全的。每翻开一片新区域就会带来更多机会,所以不断重复这个简单的循环。
比较两个数字共享的部分
当一个数字的未翻开相邻格是另一个数字的子集时,把它们剩余的雷数相减,差值完全属于多出来的那些格子。差为零,多出来的格子都安全;差等于多出来的格子数,它们就全是雷。先把下面的示例练熟,再去记形状。
先检查旗子,再双击展开
双击展开会奖励插对的旗子,一次翻开多个相邻格;但它也会放大错误。在按 D 或双击之前,先检查每面旗背后的推理,尤其是那些插得很快、或者在猜测之后挪动过的旗。
概率不等于承诺
估计风险较低的格子仍然可能是雷。能拿到精确概率时优先使用精确概率,也要看清工具有没有考虑整个棋盘。我们的扫雷解题器会按总雷数给各个独立边界加权;超出计算上限的局面会保持不标概率,而不是把局部的猜测当成精确概率展示出来。
怎样打通高级
先在初级按舒服的节奏完成棋盘,再开始计时。当你能解释自己插的每一面旗、能发现相互重叠的范围时,再升到中级。用无猜扫雷单独练习推理。在高级卡住时,把整条边界都扫一遍:别处一个简单的数字,也许就能解开困难的那一片。
建立固定的扫描顺序,而不是东看西看
在已翻开区域的边界上选一个方向,接下来几局都保持一致。比如从左上角的边界开始,顺时针走。每遇到一个数字,问两个问题:它的雷是否都已经找到了?它剩下的未翻开格子是否必须全是雷?只要某一步能带来有用的信息就马上走,然后回头简单看一下受影响的那片区域。这样可以避免每点一下就把整个棋盘重新扫一遍。
如果某一片没有直接的下一步,就先放一放。一直盯着同样三个数字,反而会错过别处很容易的推理。等其他地方翻开、可用信息或剩余雷数变了,再回来看。扫描既要有条理,让你知道哪些已经检查过;又要够灵活,能跟上新翻出的数字。速度来自少做重复的工作,而不是把同一个没把握的决定做得更快。
把“确定”和“假设”分开
把旗当作假设来用,会污染它周围之后的每一步推理。如果你在心里假设某个格子是雷,就在推理时明确标记这个假设:“如果这里是雷,会推出什么?”如果推出了矛盾,就可以排除这条分支;如果没有推出矛盾,你只是找到了一种可能的摆法,并没有证明这个假设。
正常对局时,只把旗留给能用数字解释清楚的结论。打算回头再想的格子,用可选的问号标记更合适。在解题器里,旗会被当作确认的雷;输入一面推测出来的旗,等于改变了解题器要解的问题。遇到出乎意料的答案时,先去掉不确定的旗再分析一次。这个习惯在无猜模式里尤其有用:一面插错的旗,可能让本来可解的局面看起来自相矛盾,或者让你期待的那一步消失。
对相邻格子的集合做减法
局面看起来复杂时,给未翻开的格子临时起个名字。如果一个减过旗之后的 1 看到 A 和 B,而一个减过旗之后的 2 看到 A、B 和 C,就用第二个等式减去第一个。A 加 B 在两个等式里都贡献一颗雷,剩下的 C 就等于一颗雷。如果两个数字减完后都是 1,同样的减法则证明 C 是安全的。
前提是小范围必须完全包含在大范围里。一个看到 A 和 B 的数字,不能直接去减一个看到 B 和 C 的数字:两者谁也不包含谁,需要更多约束才能推下去。另外,比较之前先把已确认的旗减掉:一个挨着两面旗的 3,对剩下的未翻开格子来说相当于 1。可以用交互的“减法”示例,把显示的数字和实际还需要的雷数区分开。
弄清 1-2-1 这个捷径什么时候成立
常见的直边1-2-1 定式,是数字的一侧有三个未翻开的格子,且没有其他未翻开的相邻格。在这种情况下,两侧的格子是雷,中间的格子安全。这个结论来自相互重叠的范围,并不是说只要出现这三个数字,雷的位置就一定如此。
如果某一端上方、拐角处或数字的另一侧还有未翻开的格子,这个捷径就可能不成立;已有的旗也会改变实际的数字。套用记住的形状之前,先确认那条边是封闭的,再数清每个相关数字的所有未知相邻格。拐角版的 1-2-1 示例特意带上了周围的信息,让你练习在不套用直边答案的情况下推理。认出定式能帮你找到可能的推理,而确认它的边界,才让这一步真正安全。
把 2-1-2 和 2-2-2 当作“要看上下文”的信号
这两种排列看起来很有规律,所以容易引人注意,但光凭数字并不能确定答案。在一条很紧的封闭边上,有些摆法甚至会互相矛盾;而在更大的边界上,两侧多出来的相邻格又会让同样的数字完全成立。要看的是:哪些未知格是共享的,哪些只属于某一个数字,哪些已经被翻开的 0 排除了。
两个练习示例给出了完整的周围数字,而不是让你死记一串孤立的数字。先从已经满足的范围入手,再把其余数字逐个化简。切换示例、旋转棋盘,能帮你分清“格子之间的关系”和“碰巧记住的图案”。如果你说不出某个格子为什么一定是雷,就先别插旗。认出一串熟悉的数字,是开始推理的提示,而不是跳过推理的许可。
先检查旗,再用双击展开提速
当一个数字周围的旗数与它相等时,双击展开会翻开它其余的相邻格子。在电脑上可以双击这个数字、左右键同时按,或者选中后按 D;在手机上轻点这个已满足的数字即可。先把一种方法练熟,再在计时对局中考虑切换。
旗数相等只是触发条件。如果有一面旗插错了位置,双击展开会直接翻到真正的雷。在数字密集的地方双击前,先确认每面旗是怎么来的,尤其是好几步之前插的旗。有时只翻开一个已证明安全的格子,就能拿到足够的信息。高效并不等于一次翻开最多的格子,而是用你能准确执行的操作,以最少的可靠动作拿到需要的信息。
比较风险,但别把百分比当成承诺
如果必须猜,是雷的概率越低越好,这是首要标准。在同一个完整模型下,是雷概率 15% 的格子比 40% 的更安全,但两者都不保证安全。如果你反复遇到这样的概率,有些低风险的选择仍然会输。要把“决策好不好”和“这一下的结果”分开看。
概率还取决于计算时考虑了哪些信息。只看局部的摆法数,可能忽略了总雷数和其他不相连的边界。MinesweeperHQ 会把各个独立边界的计数合并,并在你提供总雷数时按全局总数加权;没有总数时,分析器会说明它假设每种合法摆法概率相等。超出计算上限的局面会保持不标概率,而不是给出编出来的百分比。不要把没标概率的格子当成零风险,也不要把在不同假设下算出的百分比当作同一种结果来比较。
别忘了未接触的区域和剩余雷数
有些未翻开的格子不挨着任何已翻开的数字。它们没有局部约束,但仍然和有约束的边界一起分配剩下的雷。假设某条边界可能有一颗或两颗雷:如果全盘只剩一颗雷,两颗雷的摆法就不可能出现;反过来,如果还剩好几颗雷,多出来的雷在未接触区域里有多少种放法,会改变边界上各种摆法的相对权重。
这就是为什么“边界有两种可能的形状”并不自动意味着各占 50%。其中一种形状可能让其他地方有多得多的合法补全方式。到了残局,用计数器决定局部的一步之前,先把所有剩下的未翻开区域放在一起数。并且先检查旗:一面插错的旗既会从总数里扣掉一颗雷,又会给旁边的数字加上一个错误的假设,局部和全局的推理都会受影响。
猜的时候,先求活下来,再考虑信息量
没有确定的下一步时,翻开一个格子可以有两个目的:这一步不踩雷,以及为之后翻出有用的信息。两者相关,但并不相同。角落的格子可能眼下更安全,而另一个位置如果安全,能翻出更有信息量的数字。评估整棵未来的决策树,要比计算眼前这一下是雷的概率难得多。
解题器推荐的是它实际算出的概率中,眼前是雷风险最低的那个格子,并不声称这个选择能让整局获胜的概率最大。实际练习时,先从你能说出理由的风险开始。如果几个格子的风险相同,可以考虑哪一个能把分开的区域连起来,或者区分几种互相竞争的摆法,但要清楚这是额外的策略判断。不要因为模糊地觉得“能开一大片”,就认定它眼前的风险更低。
输了以后,做一条简短而具体的记录
输了之后,先判断最后一步是推理、有意的猜测,还是操作失误。推理出来却踩了雷的那一步最值得细看:检查斜角相邻格、减过旗之后的数字,以及你用过的定式的准确边界。有意的猜测即使分析正确也可能输。操作失误则需要换个方式调整,比如把格子调大、插旗时放慢节奏,或者换一种更顺手的操作方法。
如果你有练习笔记,就写一句这次学到的东西,例如“我把一个多出来的未翻开相邻格当成了定式之外的格子”。这比“我不擅长高级”更能指导行动。本地统计能看出你完成的局数有没有变多、用时有没有变短,但不会告诉你为什么输。先用几局仔细复盘找出反复出现的错误,再决定要不要改变整体的打法。练习的改变越具体,进步就越容易看见。
用短时间、单一目标的方式练习
第一次练习时,不看计时器,每插一面旗之前都先说出理由。另一次练习专门找已满足的数字,并正确地双击展开。第三次则专注于比较相互重叠的范围。定式小测验适合检查你在图形旋转后还能不能认出同样的关系,而完整的一局则考验你能不能在一堆干扰数字中找到它。
无猜模式把推理练习和无法避免的猜测分开了,但你仍然需要扫描边界、检查旗子。先认真把边界扫一遍,再使用提示。读完提示给出的理由后,用自己的话再解释一遍,然后继续。使用了提示的对局会在统计里单独分组,你既能比较不借助提示时的表现,也不必隐藏自己的学习过程。当失误越来越多、判断越来越草率时,就结束这次练习;一次又一次地快速重开,并不总是有效的练习。
小棋盘看得懂了,再升一级
初级适合练习准确的操作和局部计数。中级的空间足够出现好几条边界,适合练习“离开难的区域、去别处找下一步”。高级则同时增加了宽度和雷的密度。在手机上,高级棋盘会竖着排列,但仍可能需要滚动。要确保你能回到某个数字,而不会搞丢已经确认过的旗。
升级没有硬性的用时门槛。当你在小棋盘上通常都能说出每一步的理由时,就可以试试更大的棋盘;某项技巧需要练习时,也可以退回来。自定义棋盘可以单独练习某种尺寸或密度,但密度特别高的无猜棋盘可能生成得更慢,或者需要重试。生成失败并不代表你选的设置已经有一道验证过的谜题可玩;网站会如实报告失败,而不会悄悄换成一个随机棋盘。
用解题器检验你的推理
“分析这个棋盘”会把当前看得见的局面(包括旗子)传到解题器,并在跳转前暂停游戏。解题器拿不到隐藏雷的位置。知道总雷数时就填上,每个已翻开的空白格都输入为 0。如果你输错了某个数字,分析器可能会检测到矛盾;但如果输错的局面仍然有合法解,它只能回答你输入的那个局面。
点击高亮的格子去读推理原因,而不只是照抄答案。修改任何数字之后,旧的证明会被清除,直到你重新分析。一个有用的练习是:先自己预测一个安全格,再看解题器是否同意,以及它的解释用的是不是同一种关系。如果一大片相连的边界超出了计算上限,可以补充更多已知数字,或者先处理棋盘的其他部分。如实说明计算的上限,好过给出一个快速但没有依据的结论。