如果你和我年龄相仿,你会记得Windows扫雷器。这是当时Windows附带的几款游戏之一,目的是培训用户如何使用当时很时髦的“鼠标”。它不再随Windows一起提供。你可以在Windows10上安装扫雷软件,但开发者使用的是…。做了一些选择。
如果你还没有玩过,扫雷者是一个方格网格,有些格子下面有地雷,你的工作就是点击所有其他格子。如果你点击一个地雷,你就输了。您也可以用鼠标右键标记方块,以记录您认为它们是地雷。关于地雷在哪里的唯一线索是,当你点击一个不是地雷的方块时,它会告诉你相邻的八个方块中有多少是地雷。如果这个数字是零,游戏会自动点击所有相邻的方块,这样你就可以从一个小补丁开始。希望在一个狭小的角落里包括一个1,这样它的地雷就只有一个地方可以去了,而这将完成附近的一个1,这样你就可以得到更多的数字来工作,最终引导你完成游戏。
如果你不那么幸运,你可能得不到可解决的冲浪板。一种常见的情况是,你深入到最后两个空间,你知道其中一个是地雷,但没有水来预测是哪一个。你得猜一猜。正面你赢了,反面你刚刚浪费了10分钟仔细地清理了整个棋盘,结果却被强行猜测打乱了。
有一个版本的扫雷器,保证你永远不需要猜测,这是非常好的。它巧妙地解决了无法取胜的游戏的问题,虽然我发现总是知道你可以扣分可能是一个太大的线索,但在常规的扫雷游戏中,你甚至可能一下子就输掉-你必须猜测第一步棋,可能会是地雷。在这种情况下,Windows扫雷程序悄悄地选择了不同的地雷排列,并假装你毕竟很幸运-但如果你被困在最后,它不会这么做。
如果我们走得更远呢?下面是扫雷者的一个版本,当你被迫猜测时,你永远不会受到惩罚。任何时候,只要没有足够的信息来推断安全移动,我们就会耍Windows的把戏,悄悄地重新安排地雷,这样你就不会受到惩罚。
但由于这本身会使游戏过于简单,这枚硬币的另一面是,如果你在理论上能推导出一个安全的走法,但不管怎样,代码会悄悄地重新排列地雷,这样你不必要的风险就会适得其反,你就会输。
这个游戏也被操纵,让你在第一次点击时得到零分,而不是简单的非地雷空间。老实说,这主要是为了避免计算困难的情况-这不是我所说的仔细优化的代码。如果我想扩展它,我会在你盯着屏幕的时候让它预先计算事情,而不是等你选择一个正方形,然后再试着想出该怎么做。
更重要的是,我想让游戏意识到什么时候会有强制猜测-目前如果在发车区的一个角落有50%的机会,而你显然最终必须抓住这个机会,你必须等到那就是所有的机会。如果你在别处有安全空间的时候冒险,你永远都会输。
如果我感觉特别刻薄,我可以坚持让玩家选择安全几率最高的方块,而不是简单地判断每个方块在理论上是否都是可知的。但我认为这样做太过分了。