6

我正在创建一个益智游戏,虽然可以手动玩简单的关卡,但要通过计算机程序来解决更难的关卡。拼图是六角板上的洪水填充。您可以在这里尝试原型。

替代文字
(来源:hacker.org

以下是拼图的工作原理:通过从顶部选择一种颜色,您从左上角的图块开始执行泛洪填充。这逐渐将电路板转换为纯色。挑战是在一定数量的动作中做到这一点。

我已经创建了几个类似的谜题,关键是使用一种算法来生成在不知道它们是如何创建的情况下难以解决的板。例如,在这里我们可以通过反转洪水填充来生产板:从实心板向后工作,直到它被取消淹没。我们知道这需要多少步,并且可以将其设置为解决方案的下限。

我面临的问题是,当我尝试这种方法时,我的上限太高了。即使通过随机移动,在这个移动次数内解决难题也变得微不足道。

一种不是解决方案的方法是生成一个随机棋盘,然后对其进行优化求解并将其设置为目标。关键是要创建一个谜题,其中最佳解决它是 NP 时间或至少是一个硬 P。

所以我正在寻找的是一种算法,它可以生成极其坚硬的电路板,随着它们变得越来越大,解决它们成为一个严峻的挑战。

4

3 回答 3

1

我会尝试证明它是 NP 完全的或在 P 中,以了解困难的配置。

我还将抽象出六边形并将表示用作图形。

于 2009-07-14T20:51:00.353 回答
1

我玩过很多矩形洪水拼图(http://labpixies.com/gadget_page.php?id=10)。很高兴看到十六进制版本!我认为找到一个困难的游戏就像:避免相同颜色的大块出现在拼图中。至少在我见过的矩形案例中,几乎所有可以通过少量步骤解决的谜题都有大色块。

PS我认为您的“下限”无效。在前进的过程中,如果使用了一个好的策略,你实际上可以用更少的步骤完成。“下限”实际上是最佳解决方案的上限。

于 2009-08-26T10:34:47.517 回答
1

在进行 RSA 加密时,我们找不到素数,我们选择随机数,然后对它们进行测试,使我们越来越高的概率成为素数,而无需证明这一点。

我建议也一样。尝试找到使拼图具有所需属性的可能性很高的条件,并对其进行测试。或者您可以使用遗传算法/神经网络并训练它们识别“好”谜题,这相当于同一件事。

于 2009-07-14T18:51:01.593 回答