能否设计一种没有死猜的扫雷程序( 二 )



■网友
我记得有个游戏,类似于脱衣扫雷???反正就是每一关衣服少一层,没错是日本的,而且现在我也没了,那个游戏说实话除了第一步(第一步点三点区也会死)纯粹靠推理,唯一的规律就是三点区不能点,绝对全是雷,每一关砖块大小不定,雷数量不定
■网友
第一步点哪里?2015-8-24更新@WinKaR@徐天一我错了,在win7环境下测试了下,好像是控制了第一步不会炸。那么题主说的方案实现的可能性是存在的。
■网友
有,有款扫雷游戏chocolate sweeper好像是这名字,无猜,除了第一下以外,每一步都可以靠推理(只要你真的水平够高或者足够有耐心)你可以网上找一下
■网友

Kaboom看看这个?
雷区会根据点击结果实时变化,如果遇到推理不出来,只能靠猜的情况(当然是真正意义上的推理不出来,不是因为个人能力推理不出来),点击不明确的格子必定安全,可以开debug模式玩,就会很直观。
能否设计一种没有死猜的扫雷程序

像上图这种情况,明显周围8个格的情况不可能通过推理得出,于是随便选一个都不会有雷,如下图
能否设计一种没有死猜的扫雷程序

多的就不演示了 大概就是这样 不过需要注意的是,黄框表示的是「无法通过现有条件判断是否有雷」,而不是「无法通过推理判断是否有雷」如下图
能否设计一种没有死猜的扫雷程序

红框圈起来的地方是点击的地方,虽然是黄框,但还是有雷。因为黄框是否有雷可以根据左边的情况看出来,而左边是可以开发的,即为「无法通过现有条件判断是否有雷」但可以通过开发左边排除得到更多条件判断是否有雷。这种情况不算只能靠猜的情况,程序当然就不会帮你。当然,如果红框周围的点全部被排除之后还是无法判断是否有雷,那就放心点吧,程序会帮助你的。
你甚至可以玩出这种丧心病狂的情况...(图二是群友玩的)
【能否设计一种没有死猜的扫雷程序】 能否设计一种没有死猜的扫雷程序

能否设计一种没有死猜的扫雷程序

至于实现方法,下面有github链接,自己看吧。

■网友
我不太懂,难道扫雷不是除了第一个以外,其他都是不用猜靠推理的么?
■网友
(原答案在回答時誤解了問題,修改中)


推荐阅读