我用Java写了一个蛇游戏。我还想做的就是为它创建一个演示(所以蛇会自己玩)。我写了一个简单的演示,但是蛇死得很快。那么,对于那种问题,有没有算法或东西?我相信它有点类似于国际象棋游戏的问题? 我希望蛇尽可能活着。谢谢。
答案 0 :(得分:9)
Google赞助的AI Challenge在2010年推出了“Tron”游戏。您可以从搜索解决方案中获得一些好主意。
如果您只想要一个非常简单的策略来制作合理的演示,那么您可以尝试以下内容:
除此之外,我认为国际象棋风格的人工智能方法(使用移动搜索树)不会很好。你无法提前轻松搜索足够的动作。
答案 1 :(得分:2)
这不是您正在寻找的答案,但我发布它是因为我真的希望您进一步探索此算法,修改它直到您发现自己有一个非常合理的AI:
解决这个问题的最简单的算法是“绕过边缘,然后向下弯曲”的方法。基本上,你从蛇开始,得到它向西移动,然后拥抱西墙,然后是天花板。然后你穿过每个可能的方块,就像一个紧身的,直到你到达底部,向西,然后重新开始。
如果你尝试,你可以把它变成一个非常优秀的AI:D
答案 2 :(得分:1)
在没有为你工作的情况下,我可以告诉你,开始解决这类问题的最佳方法是考虑蛇应该尽可能长久地生存下去。什么'经验法则'蛇应该遵循以保持活力。对于初学者来说,蛇可能在碰到障碍物之前转向它,并且朝向它不会被装箱的方向转动。因此,当它在它的尾部的一个空间内时,你可以编程蛇转动(或墙壁)朝向与其他障碍物之间距离最大的方向。另外,我认为蛇是一款可以完美播放的游戏,在你的演示中你可能不需要这样,所以如果事情变得太相同,你总是可以随意抛出一些随机性。