我正在开发一个基于 HTML Canvas 和 JavaScript 的小型游戏来训练自己,我选择创建一个 map 着色益智游戏。
我最初计划使用给定算法解决难题所需的时间来设置难题难度,但我最终选择实现蛮力求解算法。其他算法对我来说太复杂了,因为我没有找到一些清晰的资源来很好地解释最佳 3 或 4 着色性的算法。
我的问题是可以制作一些棘手的谜题,因此蛮力解决需要很长时间,但使用其他解决方法可能仍然很容易。
那么,您如何确定 map 着色谜题的相对难度?
最佳答案
您的 map 是无向图。顶点是要填充颜色的表面,边是连接邻居的表面。
当每个表面上的邻居数量很少时,一个拼图的难度很低。一个难题是每个顶点都有很多边。
因此,对谜题进行排序的方法就是:
difficulty = total_number_edges - total_number_vertices
一个天真的人。您现在可以通过添加不同的其他变量来改进此公式,例如顶点中的最大边数或顶点总数(因为有很多表面要填充的拼图更难并且需要更多时间)
difficulty = (total_number_edges - total_number_vertices)
* (total_number_vertices / max_edges_in_vertex)
你应该是主公式的发明者:)
关于algorithm - 我如何评估图形着色谜题的难度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5513805/