对于类似Unblock Me的游戏来说,什么是一个不错的等级生成算法?
我的第一次尝试是从一个已解决的关卡开始并向后工作。我从电路板右侧出口旁边的红色水平矩形开始。最初,董事会没有其他零件。所以我试着伪随机地添加碎片到所需的碎片数(比如七)。仅限于水平或仅垂直片段的级别不是很有趣所以我在添加时在水平和垂直片段之间交替。最后,我试图通过随机移动它们来争夺碎片。经过几个例子后,很明显这种方法经常产生无趣的水平。最小移动次数也是未知的。
下一次尝试以不同的方式解决问题。级别是随机生成的。然后搜索算法找到解决难题的最小移动次数(如果可能的话)。虽然我还没有实现这个,但我认为它会创建一些有趣的关卡。由于电路板相对较小(10x10上限),我认为运行时间对于生成与应用捆绑在一起的电平是可以接受的。此外,已知最小移动计数对于评分很重要。
我怀疑第一种方法是否正常工作。但是,我没有考虑过的变化可能会起作用。我对第二种方法的唯一保留是潜在的代码复杂性。我认为它将是一个带有备忘录表和BoardState对象的BFS。在深入研究第二种方法之前,我想先听一些其他选择。
答案 0 :(得分:2)
我会这样做: