用新浪微博登录

只需一步,快速搞定

 找回密码
 立即注册

用新浪微博登录

只需一步,快速搞定

查看: 5490|回复: 5

[技术] 要成为扫雷高手,先练好逻辑吧

[复制链接]

该用户从未签到

37

主题

55

帖子

10

积分

LV 2.会员

积分
10

社区居民

发表于 2011-7-1 17:42:21 | 显示全部楼层 |阅读模式 |          

扫雷作为策略游戏,需要游戏者精确的判断。现在扫雷高级的官方最快纪录是33.95秒,中级则是由一个波兰玩家保持的8.5秒。而初级纪录是1秒,世界上很多人达到了这一点。在1秒的时间里完成初级扫雷,据测算概率在0.00058%至0.00119%之间(属于运气题),最可能的方法是直接点击四个角的方块。而本文所作的事情,则是将雷与雷之间的规律给你揪出来,并且深入思考其中的内涵。让你以后面对扫雷时,缩短与记录的差距,战无不胜!
从简单雷区入手
下图是一个初级的雷区,并且标注了两颗雷的位置,你能将剩下的地雷扫描出来吗?
1.png
经过逐一排查,可以很轻松的确定雷区中的6颗地雷所在位置:
2.png
再来看一个简单的“雷区”:
3.png
通过逐步扫描每一个方块会发现:首先最左边的和最右边的两个格子都一定是地雷,从左数第二个空格子和从右数第二个空格子也都是地雷,由于数字1的关系,从左数第3个格子和从右数第3个格子都不是地雷,翻开一定是数字1……这样一直下去,最后你会发现最中间的两个空格子,不管有没有地雷,都和周围格子上的数字不符。也就是说这样的雷区有bug,是无解的。
雷区中的逻辑门
怎么判断一个雷区是否有bug?又怎么判断雷区中地雷的具体位置呢?难道一定要从头到尾将雷区扫描一遍吗?

其实这些雷区里其实藏着一个规律。我们用数学方法来分析了上例的雷区:

在之前提到的这两个雷区里,把还没有翻开的格子交叉标记上字母x和x’。可以看到:当x的格子有雷时,x’格子一定没有地雷,反之亦然。如果将最左边的空格子作为输入,把最右边的格子作为输出,输入结果和输出结果一定是一样或者相反的。如果是相反的,这相当于一个NOT(“非”)门电子元件。如果是一样的,就有趣了,这样的一片雷区就具备了电路导线的性质!
4.png
在这里,雷区被看成了一个数字逻辑电路。执行这些“或”、“与”、“非”等逻辑运算的电路则被称为——逻辑门。任何复杂的逻辑电路都可由这些逻辑门组成。

逻辑门是集成电路上的基本组件。简单的逻辑门可由晶体管组成。这些晶体管的组合可以使代表两种型号的高低电平在通过它们后产生信号。而高低电平可以分别代表逻辑上的真假或二进制中的0和1,从而实现逻辑运算。具体到扫雷游戏里,也就是说,逻辑门可以用于判断一系列格子中的地雷的具体位置,而且它如同电路传导一样,精确而迅速。

常见的(也是扫雷中用到的)逻辑门包括“与”门、“或”门、“非”门等。将它们组合使用就可以实现更复杂的运算——完成复杂情形下的扫雷,这种方法比按照规则缓慢推进的扫雷方法要节省很多时间。
5.png   
复杂雷区中的精确判断
在简单的雷区中小试牛刀后,带着发现的规律,让我们进行一次实战演习。下图是高级扫雷游戏中的一个典型的雷区:
6.png
你能在不翻开格子的情况下,直接指出黄格子中有无地雷吗? 如果将雷区随意改变一点——左上角的一个格子下移一位,结果又如何呢?
7.png
你可能需要考量全局,从某个点开始逐步推理,将雷区全部扫描一遍,才能判断。而当雷区任意改变一点时,你都要重新来过,才能再次解答。这无疑是一种巨大成本负担。

实际上我们可以很快速地给出答案:第一个雷区的黄格子中无雷。而第二个雷区的黄格子中一定有雷。

这是怎么做到的?其实将上述的逻辑门引入到这个复杂的雷区中,一切都会变得简单而清晰起来。
8.png
雷区内靠近边界、可以直接确定是地雷的位置都插上了标示旗,剩下的位置标上了不同的字母。把一个有地雷格子看作1,没有地雷的看作0。最左面的格子(u、v)作为输入,最右面的格子(t)作为输出。按照扫雷游戏的规则,经过一步步推算,它们之间的关系就是:
( u , v , t ) = ( 1 , 1 , 1 ) 或 ( 1 , 0 , 0 ) 或 ( 0 , 1 , 0 ) 或 ( 0 , 0 , 0 )

显然,这个雷区被归纳成了一个AND门,它不仅轻松化解了这个扫雷难题,而且把雷区的规律揭示出来了。如此一来,当你掌握扫雷中这些逻辑门规律并加以练习后,就能够达到精确、快速的“机械化”扫雷水准。而到那时,一个新纪录或许就会诞生了。

数学家的扫雷研究

将扫雷问题抽象化从而缩短游戏时间的人,也不仅仅是扫雷发烧玩家。一些数学家也十分关注这个游戏背后的数学意义。

英国一位数学家用扫雷游戏中的逻辑规律构建了一系列电子元件,用电子电路模拟雷区。他试图将一个的给定的雷区图案交由计算机来判断是否可解。如果随着格子数量的增加,电脑的计算量增长不是很快,就是P问题,如果计算量增加的很快,就是NP问题。计算机判断雷区是否可解,需要这类问题属于P问题才可以。

对于几种基本的电路元件(AND、OR、NOT),如果将很多个这样的元件组合起来,相互连接,就会产生很多个输入、输出口。判断最后哪些输出结果可以产生,哪些不可以产生的这类问题,被称为SAT问题,它属于一个经典的NP完全问题。

而英国数学家的这个问题在一些时候等同于一个复杂电子电路的SAT问题,也就是NP完全问题。由此看来,面对一个上千上万个格子的巨型雷区,不要说去完成所有扫雷任务,就仅仅判断它是不是可解的,都可能会是计算机也承受不了的的大难题。
罪恶感啊~罪恶感
回复

使用道具 举报

签到天数: 1 天

[LV.1]初来乍到

177

主题

2845

帖子

7575

积分

LV 12.会员

我是喷子我骄傲

积分
7575

社区居民偶尔光临工蜂最爱沙发业余写手常坐沙发沙发如床社区平民做个有钱人常驻会员忠实会员略有小成渐入佳境兵蜂蜂王在线达人

发表于 2011-8-2 13:48:25 | 显示全部楼层
至今不会玩扫雷的飘过,也是没有觉得这鸟游戏有什么乐趣
宁可色得别致,也不帅得雷同 街机对战平台第一喷子大帝……
回复 支持 反对

使用道具 举报

签到天数: 379 天

[LV.9]以坛为家II

45

主题

207

帖子

1462

积分

UTT

积分
1462
发表于 2019-1-25 10:15:29 来自手机 | 显示全部楼层
厉害厉害!!!!!!!!!
回复

使用道具 举报

签到天数: 1297 天

[LV.10]以坛为家III

222

主题

1874

帖子

7104

积分

LV 12.会员

【游聚节能小标兵】

积分
7104
发表于 2019-1-30 09:11:21 | 显示全部楼层
板砖哥 发表于 2011-8-2 13:48
至今不会玩扫雷的飘过,也是没有觉得这鸟游戏有什么乐趣

据说微软当年出这款游戏是为了让人们练习使用鼠标。
回复 支持 反对

使用道具 举报

签到天数: 1069 天

[LV.10]以坛为家III

1031

主题

1万

帖子

5万

积分

版主

Rank: 7Rank: 7Rank: 7

积分
56342

游聚十周年

QQ
发表于 2021-2-20 20:46:07 | 显示全部楼层
看帖是一种消遣,回帖是一种美德。
回复 支持 反对

使用道具 举报

签到天数: 111 天

[LV.6]常住居民II

93

主题

1300

帖子

3484

积分

LV 10.会员

积分
3484
发表于 2021-2-20 20:50:17 | 显示全部楼层
6666666666666666666666
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

     
    Archiver|手机版|小黑屋|( 沪ICP备12034951号 )

GMT+8, 2024-3-29 17:35 , Processed in 0.792165 second(s), 33 queries .

© 2001-2011 Powered by Discuz! X3.1

快速回复 返回顶部 返回列表