我已经实现了在这个问题中标记为正确答案的算法:What to use for flow free-like game random level creation?
但是,使用该方法将创建可能具有多种解决方案的板。我想知道是否可以对算法进行任何简单的限制或修改以确保只有一种可能的解决方案?
我已经实现了在这个问题中标记为正确答案的算法:What to use for flow free-like game random level creation?
但是,使用该方法将创建可能具有多种解决方案的板。我想知道是否可以对算法进行任何简单的限制或修改以确保只有一种可能的解决方案?
创建唯一的 Numberlink/Flow Free 非常困难。如果您在提到的线程中查看我的算法建议,您会发现一种算法可以让您创建具有必要条件的谜题,即解决方案不能具有相同颜色的 2x2 正方形。然而,在http://forum.ukpuzzles.org/viewtopic.php?f=3&t=41的讨论表明这还不够,因为还有许多非平凡非独特的谜题。
从我对这个问题的研究来看,解决这个问题的唯一方法似乎是有一个单独的算法来测试唯一性,并丢弃坏实例。一种专门为唯一性测试算法而设计的求解器是Imo 的求解器。另一种选择是使用多个不同的求解器并检查它们是否提出了相同的解决方案。
我认为您应该实施求解器,它可以找到某个级别的所有解决方案。最简单的方法是回溯。
当您有许多级别时,请一个接一个并寻找解决方案。一旦你找到了某个关卡的第二个解决方案,就把那个关卡扔掉。