【发布时间】:2015-03-06 01:46:39
【问题描述】:
我正在制作一个扫雷克隆。我目前的地雷生成算法只是:选择一个坐标,如果它没有地雷,则放置一个地雷,否则再试一次。我认为这不是一种有效的算法,尤其是在高密度雷区。我正在考虑其他一些选项,例如:Fisher-Yates shuffle 等,但我认为它对于更大的网格有很长的运行时间。我正在考虑使用链接列表。有什么建议么?
【问题讨论】:
-
将所有可能的位置放在一个列表中。重新排列列表并将炸弹放置在前 x 个位置。
-
只需使用 Fisher-Yates shuffle 随机化索引,然后从 0 到该数字选择地雷数
-
哦。谢谢!我会试试那些。但是还有其他解决方案可以减少不必要的工作吗?例如,我真的需要洗牌整个列表吗?无论如何,我想我会坚持改组,它更简单,更易于管理
-
@userx01 你不需要打乱整个列表,你只需要选择一个随机索引。
标签: algorithm minesweeper