扫雷(小游戏) 百科内容来自于: 百度百科

扫雷是一款相当大众的小游戏,游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷。扫雷最初的流行伴随着1992年发布的windows 3.1,之后迅速成为了各种操作系统中必不可少的一款游戏(包括windows的winmine, KDE桌面环境下的KMines,GNOME桌面环境下的gnomine等),也出现于一些智能手机平台(比如Android系统的Minesweeper Classic,苹果ios系统的Minesweeper Q)。同时,Minesweeper Clone等功能更为丰富的“专业”扫雷软件也应时而生。扫雷玩家可以在中国扫雷网加入排行。

扫雷简介

历史介绍

扫雷最原始的版本可以追溯到1973年一款名为"Cube"(方块)的游戏。
1985年,“方块”被改写成了游戏"Relentless Logic"(简称为“Rlogic”)。在“Rlogic”里,玩家的任务是作为美国海军陆战队队员,为指挥中心探出一条没有地雷的安全路线,如果路全被地雷堵死就算输。两年后,汤姆·安德森(Tom Anderson)在“Rlogic”的基础上又编写出了游戏“XMines”(地雷),由此奠定了现代扫雷游戏的雏形。
在此基础上,1989年开始受雇于微软公司的两位工程师罗伯特·杜尔(Robert Donner)和卡特·约翰逊(Curt Johnson)开发出了扫雷游戏。微软于1990年10月收购了扫雷的版权,并随纸牌游戏(Solitaire)一同加载到1992年发布的Windows 3.1系统上,从此扫雷才正式在全世界推广开来。虽然历经多次外观变化,Windows自带的扫雷——winmine一直是最流行的扫雷版本。在Windows 8中,扫雷游戏依然存在,但被重命名为Microsoft Minesweeper,在Windows Store上提供下载。
虽然winmine非常流行,但其在防作弊方面比较薄弱,功能也有限制。2003年,第一个具有录像功能的扫雷克隆版本出现(后来命名为Minesweeper X)。2004年初,功能更强大的Minesweeper Clone也释放出首个测试版本。此后,扫雷爱好者多使用有限的几种扫雷克隆版本交流纪录,参与排行。

游戏玩法

windows XP自带扫雷winmine.exe为例(其它版本的扫雷游戏与之大同小异)。游戏区包括雷区、地雷计数器(位于左上角,记录剩余地雷数)和计时器(位于右上角,记录游戏时间),确定大小的矩形雷区中随机布置一定数量的地雷(初级为9*9个方块10个雷,中级为16*16个方块40个雷,高级为16*30个方块99个雷,自定义级别可以自己设定雷区大小和雷数,但是雷区大小不能超过24*30),玩家需要尽快找出雷区中的所有不是地雷的方块,而不许踩到地雷。
游戏的基本操作包括左键单击(Left Click)、右键单击(Right Click)、双击(Chording)三种。其中左键用于打开安全的格子,推进游戏进度;右键用于标记地雷,以辅助判断,或为接下来的双击做准备;双击在一个数字周围的地雷标记完时,相当于对数字周围未打开的方块均进行一次左键单击操作:
左键单击:在判断出不是雷的方块上按下左键,可以打开该方块。如果方块上出现数字,则该数字表示其周围3×3区域中的地雷数(一般为8个格子,对于边块为5个格子,对于角块为3个格子。所以扫雷中最大的数字为8);如果方块上为空(相当于0),则可以递归地打开与空相邻的方块;如果不幸触雷,则游戏结束。
游戏结束

游戏结束

右键单击:在判断为地雷的方块上按下右键,可以标记地雷(显示为小红旗)。重复一次或两次操作可取消标记(如果在游戏菜单中勾选了“标记(?)”,则需要两次操作来取消标雷)。
双击:同时按下左键和右键完成双击。当双击位置周围已标记雷数等于该位置数字时操作有效,相当于对该数字周围未打开的方块均进行一次左键单击操作。地雷未标记完全时使用双击无效。若数字周围有标错的地雷,则游戏结束,标错的地雷上会显示一个“ ×”(见右图)

策略技巧

初级技巧

禁用?标记:如果在游戏菜单中勾选了“标记(?)”,那么当无法判定某方块是否有雷时,可以右键单击两次给它标记一问号 (?)。这一设定对游戏过程用处不大,若标错了雷还需要多点一次右键来取消。熟练扫雷的基本规则后完全可以将这一功能禁用(去掉“标记(?)”前的勾)。
标雷+ 双击:如果某个数字周围的地雷已标记完,可以指向该方块并同时点击鼠标左右键,将其周围剩下的方块挖开。这就是所谓的“标雷双击”,是新手提速的基本技巧。当玩家对数字1-7周围的雷分布不熟时,双击可以用于检验雷是否标完,以避免左键触雷。

活用定式

寻找常见的数字组合(定式),这有助于判雷,减少思考的时间。例如,在一组未挖开的方块的边上出现相邻的三个数字 2-3-2 表示这三个数旁边都是地雷,若出现1-2-2-1则两个2上有雷而两个1上无雷。
◆两个1夹一个2【-1-2-1-】,两个1处必有雷,2必无雷;
◆两个2夹一个1【-2-2-1-2-2-】,中心的1必有雷;
◆两个2夹n个3【-2-3-3-2-】,2和3边上全是雷;
◆连续的两个2靠边【|2-2-】,2边上都是雷;
◆连续的三个1靠边【|1-1-1-】,远离边的那个1无雷;
◆连续的三个1被夹在中间【|1-1-1|】,中间的1有雷,两边的1无雷;
◆连续的四个1被夹在中间【|1-1-1-1|】,两边的1有雷,中间的1无雷。
说明:方括号中的“|”表示边或已打开的方块,数字为未知方块正下方的数字。定式需要灵活运用,这里的数字都没有考虑周围已标记地雷,如果已经标记了地雷,则需要先用数字减去周围雷数,再应用定式(比如出现【-2-4-2-】,但是已知两个2周围已经各有一个雷,4周围已经有两个雷,则可以简化成【-1-2-1-】)。这些原则若能熟练掌握,能大大缩短扫雷时间并提高完成率。

局部优化

在扫雷的过程中,对同一特定局部的处理,不同的玩家会有不同的选择,但所耗费的时间却不相同。为了缩短整局完成的时间,我们有必要在每一个局部对操作进行优化,避免无效的点击和移动。这样积累下来的时间节省十分可观。
盲扫范例

盲扫范例

因为扫雷游戏的目标是“找出所有不是雷的方块”,所以标出所有遇到的雷并非必要。初学者常常把时间浪费在标出所有的雷上,但是为了提高速度,标雷唯一可以接受的理由是能够通过双击打开更多的格子。可以理解为:标n个雷后双击就必须能开n+1乃至更多个格子,如果标了n个雷开不到n+1个格子,标雷就是失败的,不如直接左键单击点开非雷格子。
一些玩家从不标雷,因为花费在插旗上的时间可以直接用来单击打开更多的格子,这种风格叫做盲扫。盲扫适用于3BV较低的地图,但对于一些局面,特别是地雷分布比较均匀的局面并不能实现局部最优化操作。实际上,标雷和盲扫这两种技术组合后才能对每一个局部使用最有效的解决方法。
标雷双击可以使用"1.5 Click"技术节约时间。正常的标雷双击方法是点击右键标雷,然后同时点击左右两键完成双击。1.5 Click 的技巧是右键按下(不弹起)来标雷,然后左键在目标数字上按下(不弹起),最后双键同时弹起完成双击。这样在每个标雷和双击的组合中都减少了一个动作。只要右键在左键之前按下,标雷的动作都能完成。右键和左键按下的时间间隔越短,节约的时间越多。理论上这种方法几乎可以使标雷扫法的速度加倍,但实际达到的效果因人而异。

雷诀八条

第一条:基本定式不要忘,现场推理真够呛。
国内第一局高级sub40(张砷镓)

国内第一局高级sub40(张砷镓)

第二条:鼠标点击不要快,稳定节奏把空开。
第三条:顺手标雷不要惯,积累下来记录悬。
第四条:无从下手不要愣,就近猜雷把心横。
第五条:遇到猜雷不要怕,爆了脸上不留疤。
第六条:猜雷猜错不要悔,哭天抢地也白费。
第七条:碰上好局不要慌,紧盯局部慢扩张。
第八条:痛失好局不要恨,既然有缘定有份。

常用术语

局面评估

3BV(BBBV): Bechtel's Board Benchmark Value
将所有非雷方块点开所需的最少左键点击数,普遍用来评估局面难易程度的数据。
ZiNi: Elmar Zimmermann和Christoph Nikolaus共同提出的一种算法
用来评估完成局面所需要的最小点击数,类似于盲扫时的3BV。
UPK: Unfair Prior Knowledge
可重新开始同一局的游戏模式。
Dreamboard(梦幻图):泛指3BV小的不猜好图,有时特指历史上著名的一个中级图。

实力参数

IOE: Index of Efficiency [ 3BV / Total Clicks ]
3BV与实际点击数的比率,是普遍用来评估玩家操作效率的数据。
ZNE:ZiNi Efficiency [ ZiNi / Total Clicks ]
ZiNi效率,ZiNi值除以总点击数,与IOE类似。
3BV/s: 3BV per second [ 3BV / (Time - 1) ]
一局内平均每秒钟完成的3BV值,是普遍用来评估玩家扫雷速度的数据。
IOS: Index of Speed [ log(3BV) / log(Time-1) ]
3BV的对数与时间的对数之比率,与3BV/s作用相当。
RQP: Rapport Qualité Prix [ Time / (3BV/s) ] or [ Time×(Time-1) / 3BV ]
时间与3BV/s的比率,因加入了时间因素,比3BV/s更能说明扫雷速度。
QG: Quality Grade [ (Time-1)^1.7 / 3BV ]
基于扫雷网大量数据得到的分级实力参数,作用类似于RQP。

游戏风格

NF(盲扫): Non-Flag
一种仅用左键点开数字而不标记地雷的玩法。
FL: Flag
相对于NF的标雷玩法。

纪录相关

MB: Miss Block
整个局面都完成,但有一个方块因忽视而没有点开的情况。
LC: Lose on the last click
打开最后一个方格时不幸踩雷。
Hopsing(双破):同时打破自己的时间和3bvs纪录。
Sum: 初级、中级、高级成绩相加而得出的总成绩。
Sub: 小于某数值,比如高级Sub50就说明高级成绩<50。
Sup: 大于某数值,比如高级3BV/S Sup4就说明高级3BV/S>4。
Minute Barrier(分障):常有玩家在高级60s大关受阻很久。突破分障才能飞升神界。
Elmar's Syndrome(艾尔玛综合征):连续取得同一成绩而长期未能突破的现象,因 Elmar Zimmermann 得名。

扫雷软件

系统自带的扫雷程序以游戏体验为设计指向,常常有意或无意地忽略了对潜在作弊可能的预防。流行最广的windows操作系统自带扫雷同样如此。Windows XP以及之前版本的扫雷存在计时停止BUG,这可能导致玩家无意中触发BUG得到远超自己当前水平的纪录,也可能被一些有心者刻意利用成为作弊的手段。而Vista之后的版本允许玩家重玩同一局,更是导致成绩的真实性难以判定。
出于这点考虑,系统自带扫雷的截图甚至是录像都不能成为加入扫雷排行的依据,因为即便是录像也有被加速的可能。只有三种专业扫雷软件(① Minesweeper ArbiterMinesweeper XViennaSweeper)记录的特殊格式的录像能被国际扫雷网承认。 Minesweeper Clone也曾作为扫雷的一个专业克隆版本,但它因存在一个严重的BUG而被停用,国际网停用日期:2013-07-01,扫雷网停用日期:2013-08-12) 。这些软件不仅具有强大的防作弊功能,还带有自动录像、数据统计等实用的可设置项。而中国扫雷网只承认 Minesweeper Arbiter的录像。
扫雷软件
名称
作者
最新版本
录像扩展名
Rodrigo Camargo
2007 (2007-03-22)
*.mvf
Dmitriy Sukhomlynov
Maksim Bashov
0.52.2(2013-12-28)
*.avf
Curtis Bright
1.15 (2011-11-24)
*.mvr
ViennaSweeper
Christoph Nikolaus
Thomas Kolar
3.0.2 Home Edition (2013-02-06)
*.rmv
中国扫雷网上现存有两种格式的录像: Minesweeper Clone 0.97Minesweeper Arbiter0.50.1及以上的版本)。Clone版本的录像可以用 Minesweeper Clone 0.97直接播放(对于操作系统为windows XP或更老的情况),或用 Minesweeper Clone 2007播放;Arbiter版本的录像可以用 Minesweeper ArbiterMinesweeper Clone 2007播放。

扫雷纪录

世界纪录

国际扫雷网Top20(2012-09-22)

国际扫雷网Top20(2012-09-22)

扫雷有十项主要的世界纪录:中级时间、高级时间、中级NF时间、高级NF时间、初级3bvs、中级3bvs、高级3bvs、初级NF3bvs、中级NF3bvs、高级NF3bvs(由于初级纪录的运气成分较大,雷界对此尚存争议,故初级时间和初级NF时间不列入主要的扫雷世界纪录)。
所有十项纪录中,波兰的Kamil Muranski垄断了八项, Kamil (卡米尔)也因此在2012年10月26日成为被吉尼斯世界纪录认定的扫雷纪录保持者(在被认定为吉尼斯世界纪录的2012年,Kamil 实际垄断了所有的十项记录,是无可争议的世界第一)。剩余的两个记录项——“中级NF 3bvs”和“高级NF 3bvs”由中国的郭蔚嘉保持。关于各项纪录的详细信息见下表:
世界扫雷纪录
纪录项
数值
纪录保持者
更新日期
备注
使用软件
中级时间(s)
8.03
Kamil Muranski
2012-10-11
3BV=30 (NF)
Minesweeper X
高级时间(s)
32.133
Kamil Muranski
2010-07-03
3BV=109
Minesweeper Clone 2007
中级NF时间(s)
8.03
Kamil Muranski
2012-10-11
3BV=30
Minesweeper X
高级NF时间(s)
32.551
Kamil Muranski
2012-04-28
3BV=106
Minesweeper Clone 2007
初级3bvs
9.62
Kamil Muranski
2011-02-03
3BV=25 (3.60s)
Minesweeper X
中级3bvs
6.62
Kamil Muranski
2011-09-24
3BV=104 (16.70s)
Minesweeper X
高级3bvs
5.05
Kamil Muranski
2013-04-22
3BV=229 (46.302s)
Minesweeper Clone 2007
初级NF3bvs
7.92
Kamil Muranski
2012-03-23
3BV=16 (3.02s)
Minesweeper Arbiter 0.48
中级NF3bvs
5.67
郭蔚嘉
2014-06-22
3BV=91 (17.04s)
Minesweeper Arbiter 0.52
高级NF3bvs
4.496
郭蔚嘉
2014-02-17
3BV=240 (54.38s)
Minesweeper Arbiter 0.52
说明:
  1. 这里的数据与中国扫雷网的习惯保持一致,即软件从1.00s开始计时;
  2. 国际扫雷网对3BV有限制,要求初级3BV≥2,中级3BV≥30,高级3BV≥99,否则成绩不被承认;
  3. 中国的莫文雄曾在“初级3bvs”和“初级NF 3bvs” 两个纪录项上得到sup10 的纪录,但因为“运气成分过高”未得到国际扫雷网认可,所以纪录保持者仍是Kamil。

国内纪录

以下国内扫雷纪录信息均引自中国扫雷网(中国扫雷网只承认2013年8月12日以前上传的Minesweeper Clone0.97录制的扫雷录像和2013年8月4日后上传的Minesweeper Arbiter录像,下表中粗体标出的为国际扫雷网合格纪录):
国内扫雷纪录
纪录项
数值
保持者
更新日期
备注
使用软件
Time
初级时间(s)
1.09
于谨洋
2014-08-03
3BV=2 |NF
Minesweeper Arbiter 0.52
中级时间(s)
9.57
周科
2013-10-28
3BV=31 | NF
Minesweeper Arbiter 0.50
高级时间(s)
37.03
郭蔚嘉
2014-06-22
3BV=109 | NF
Minesweeper Arbiter 0.52
NF_Time
初级NF时间(s)
1.09
于谨洋
2014-08-03
3BV=2
Minesweeper Arbiter 0.52
中级NF时间(s)
9.57
周科
2013-10-28
3BV=31
Minesweeper Arbiter 0.50
高级NF时间(s)
37.03
郭蔚嘉
2014-06-22
3BV=109
Minesweeper Arbiter 0.52
3bvs
初级3bvs
10.53*
莫文雄
2011-05-16
3BV=10(1.95s)
Minesweeper Clone 0.97
 
8.96
伍红光
2014-04-02
3BV=37(5.13s)
Minesweeper Arbiter 0.52
中级3bvs
5.83
田溢昉
2012-04-15
3BV=104(18.85s)
Minesweeper Clone 0.97
高级3bvs
4.60
周丹
2013-08-25
3BV=240(53.16s)
Minesweeper Arbiter 0.49
NF_3bvs
初级NF3bvs
10.42**
莫文雄
2010-02-05
3BV=5(1.48s)
Minesweeper Clone 0.97
 
7.69
伍红光
2011-05-30
3BV=6(1.78s)
Minesweeper Clone 0.97
中级NF3bvs
5.67
郭蔚嘉
2014-06-22
3BV=91(17.04s)
Minesweeper Arbiter 0.52
高级NF3bvs
4.50
郭蔚嘉
2014-02-17
3BV=240(54.38s)
Minesweeper Arbiter 0.52
说明:
* 因“运气成分过高”未被承认为世界纪录(3bv=10 but first 4 solved with random clicks and last 6 solved with a flag and chord.)
** 因“运气成分过高”未被承认为世界纪录(3bv=5 and last click is the only one made on purpose.)

扫雷与科学

概率计算

扫雷过程中可能会遇到一些没有确定解,必须要猜的情况。人脑能快速定性分析,但不擅长于定量分析,所以正常操作下玩家的胜率远低于扫雷游戏的极限胜率。在扫雷过程中,每一步中每个位置是雷的概率都可以基于
扫雷局部示例

扫雷局部示例

代数方法得到。
以右图为例:6*6个格子中包含11个雷,打开了3个格子之后,求其周边的格子X1~X12是雷的概率
首先是3个数字产生的约束条件(这里写成方程组的形式,也可写成矩阵相乘的形式):
① X1 + X2 + X3 + X4 + X5 + X7 = 1
② X4 + X5 + X7 + X9 + X10 + X11 = 3
③ X5 + X6 + X8 + X10 + X11 + X12 = 2
解方程组得到的19组解

解方程组得到的19组解

方程组共有19组解(见上图图示),其中的4组对应X1~X12中有3个雷,剩下的15组对应X1~X12中有4个雷。结合总雷数和未打开格子数的限制条件,总共可能的变化数为 T=4*C(21,8)+15*C(21,7)=2,558,160 。以此求出的各个位置是雷的概率。
P(X1)=P(X2)=P(X3)=0.0454;
P(X6)=P(X8)=P(X12)=0.182;
P(X4)=0.352; P(X5)=0.159; P(X7)=0.352;
P(X9)=0.841; P(X10)=0.648; P(X11)=0.648.

NP完全问题

——扫雷是NP完全问题(Minesweeper is NP-complete)
广义扫雷问题(general minesweeper problem)表述如下:给定一块被部分标定为数字或地雷的矩形区域,剩下一些格子还未打开,试确定在未打开的格子中是否存在某种形式的地雷分布,使已经出现的数字得到满足。换句话说,需要确定给出的数据是否相容。
只要解决了这一问题,现实中的扫雷游戏便同样得到完美解决。例如要确定某个格子是否非雷,只需测试这一位置是雷时数据是否相容。如果不相容,就可以判定该位置安全。同理,若能验证某一格子为数字(0->8)时数据均不相容,也可判断出这一位置是雷。
广义扫雷问题具有NP完全性。首先,它肯定是一个NP问题,因为验证一个解(由雷分布推断出数字)可以用多项式时间完成。其次,利用扫雷规则可以构建出所有的逻辑电路元件,从而证明布林可满足性问题(boolean satisfiability problem)可以约化为扫雷问题。因为布林可满足性问题已经被证明是NP完全问题,所以广义扫雷问题,或者说扫雷,也是NP完全问题。于是研究扫雷也成了研究NP完全问题的一个切入点。
$firstVoiceSent
- 来自原声例句
小调查
请问您想要如何调整此模块?

感谢您的反馈,我们会尽快进行适当修改!
进来说说原因吧 确定
小调查
请问您想要如何调整此模块?

感谢您的反馈,我们会尽快进行适当修改!
进来说说原因吧 确定