游戏链接在这里:http://floodit.appspot.com/
规则很简单,你必须从相邻的颜色中选择一种,起点是左上角,然后颜色会改变,你就可以淹没更多的区域。目标是淹没整个网格。
有一些关于这个游戏的主题在stackoverflow上,但我找不到答案。我的目标是获得淹没整个网格的最佳方法。现在我处于这个位置:
我正在尝试通过A*解决这个问题。我的启发式是选择颜色,使距离最远组件(在这种情况下,红色的2、4、1、3是最远的)最小化,并且如果几种颜色最小化到达其中一个最远的组件的距离,则选择具有最多点数的颜色(在这种情况下,我的算法选择“0”,因为它最小化了到所有最远节点的距离,并且在其中有更多的点数,比如“2”)。
我的老师给了我们最优解,而在这种情况下他的最佳方式是:2, 0, 1, 4 ,3, 2, 5;需要多7个单位。但根据我的启发式,我选择“0”,最佳方式是:0, 2, 4, 5, 3, 1, 0, 2, 4;需要多9个单位。有人能回答我,在这种情况下我必须选择“2”而不是“0”的启发式吗?
谢谢您提前的帮助。
有一些关于这个游戏的主题在stackoverflow上,但我找不到答案。我的目标是获得淹没整个网格的最佳方法。现在我处于这个位置:
我正在尝试通过A*解决这个问题。我的启发式是选择颜色,使距离最远组件(在这种情况下,红色的2、4、1、3是最远的)最小化,并且如果几种颜色最小化到达其中一个最远的组件的距离,则选择具有最多点数的颜色(在这种情况下,我的算法选择“0”,因为它最小化了到所有最远节点的距离,并且在其中有更多的点数,比如“2”)。
我的老师给了我们最优解,而在这种情况下他的最佳方式是:2, 0, 1, 4 ,3, 2, 5;需要多7个单位。但根据我的启发式,我选择“0”,最佳方式是:0, 2, 4, 5, 3, 1, 0, 2, 4;需要多9个单位。有人能回答我,在这种情况下我必须选择“2”而不是“0”的启发式吗?
谢谢您提前的帮助。