解锁Me Level发生器?

时间:2010-07-28 01:44:52

标签: c# .net algorithm

一个相当具体的问题,是否有人知道如何为游戏生成可解决级别的现有代码解锁我?或者写我自己的最佳方法是什么?通常,您将如何编写算法来测试和生成可解性等?

2 个答案:

答案 0 :(得分:4)

我曾经做过一次。

我从出口处的红色区块和随机非重叠位置的其他区块开始,然后应用最少数量的随机可行移动(1,000,000)。如果红色距离出口足够远,并且它不能移动到那里(通常是这种情况),那么你就完成了,否则重复。

答案 1 :(得分:2)

好吧,我通过强制它来编码这些问题。创建一种方法来输入板的外观(矩形所在的位置及其方向),然后编写一个递归函数,该函数可以进入每个可能的移动。 理论上并不难;) 注意该板是6x6,并且不要忘记让程序输出每个移动。 马克斯 编辑:在考虑了一段时间之后,你应该弄清楚哪个块让红色块向右移动,然后找出它应该朝哪个方向(只能是一个垂直块)。如果它为3高,则块必须向下,否则,在递归函数中创建一个fork,并测试块在任一方向上移动时会发生什么。然后找出哪个块阻塞了最后一个块,直到没有被阻塞。 这是一种可能性。