总括

扫雷游戏,需要随机生成雷,并且最好能让生成的雷随机分布,下面将对使雷随机分布算法进行评估–下面部分内容来自对liubobo老师的总结

#方法一

即设MineNumber是雷的数量,对每个雷随机生成其该有的位置
扫雷--雷区生成随机化总结
此方法是for循环里面套了一个while循环,如果while循环一直不退出的话算法的时间复杂度将会是非常高的

#方法二

先将雷按照有序的方法排序,再将其打乱
扫雷--雷区生成随机化总结
打乱的策略可以是这样的:即对于整个棋盘每个位置,再随机生成一个位置并将这两个位置交换
扫雷--雷区生成随机化总结

验证其是否够乱

判断是否够乱的标准:模拟N次,判断N次后,每个位置上出现雷的概率是否相等,经过验证方法二的方法的误差是较大的,即结果不够随机

更随机化的方法–Fisher Yates 洗牌算法

图片侵删–步骤一每次从区间里随机选择一个数
扫雷--雷区生成随机化总结
图片侵删-步骤二把他和第一个数交换位置
扫雷--雷区生成随机化总结

扫雷--雷区生成随机化总结

相关文章: