最近我在Android上玩了一个名为Pou的简单游戏,其中一个内部游戏就是连接场上游戏中的点。这是一个截图,以更好地解释这种情况。
在游戏开始时,您将获得n对点,并且必须连接相同颜色的点。在执行此操作时,您需要填充矩阵字段。
生成这样的字段不是问题,但我怎么能确定它是可解决的?
我的问题是如何生成一个有解决方案的字段? 这是一个图形问题吗?或某种连接问题?
当然,我总能制作出暴力解决方案,但我正在寻找更好的东西
答案 0 :(得分:3)
实际上,您可以生成矩阵,以确保它是可解决的。
主要思想如下。假设您需要i
个点对,矩阵为n by n
i
随机选择的单元格(起点)设置为头部,并为每个单元指定不同的颜色。i
颜色对其进行着色。 (如果没有合法的此类动作,则不再考虑这种颜色 - 这将是终点)其他一些非常松散的想法:
n by n
矩阵拆分成较小的矩形部分,并为每个部分分配一些点(与面积成比例)并使用上述方法 - 确保当您使用较少的未着色单元格时合并这些部分(另一方面,拼图会更容易)。<强>更新强>
n
,您可以尝试使用上述方法,直到您点击全彩色(因此生成,检查是否合法,如果不是:再次生成)更新II
如果你有时间,你可以尝试一次生成一次颜色,有一些停止的可能性,这取决于着色的长度/面积。所以基本上只需选择一个随机未着色的位置并执行上述方法。它应该更容易实现。