2019/02/25
在阅读算法的时候,觉得学习算法的过程,应该从真实的实例中出发,就选择了扫雷这个游戏作为研究点。小时候应该玩过,但并不理解他是怎么工作的。
先来分析以下游戏的原理:
- 关于游戏的工作过程我就不细说了,这个属于规则部分,后续进行游戏定义的时候可以具体分析;
- 棋盘的产生过程,据说游戏棋盘的产生有两种方式:1)直接随机生成,然后将其周围的棋格填充数字,也就是说玩家点击的时候,棋盘已经是固定的了。2)为了让用户能有比较好用户体验,总不能第一下就炸了嘛,就是在用户点击第一个之后再生成。
- 扫雷的解决方案,一些算法可能适合使用深度搜索,广度搜索的算法,但因为扫了这个东西具有太多的不确定性,感觉用推导的方式更好[1]。我在玩的过程中,脑海中浮现的几个想法有:逻辑推理、概率推理。逻辑推理就是按照规则方式,因为有些点是可以直接定性就是没有雷的,而概率推理就是推断出哪些个点是最可能没有雷的。然后看到别人的文章中,更多的是CSP(约束满足问题)。
- 概率问题,有一个问题,就比如说为什么从角落里进行点击,胜率就更高(这个概率在论文中的假设是第一下必然不死),这是一个概率问题,需要自己计算一下。
- NPC问题,为什么这个东西是一个NPC问题,如果定义,如果证明。