我正在开发一个与其他多条蛇竞争的AI蛇。我的主要问题是我的蛇总是把自己困在自己的身体里,有时还会被其他蛇困住。
回答:
尝试提前思考几步。强行计算未来2-3-4步(根据你能在不感到延迟的情况下处理的步数)所有可能的走法。这些可能性不会很多,因为蛇在任何时候只能转向三个位置。所以如果你检查k
步,你将需要3^k
次操作,这还不包括你可以进行的剪枝:不要检查明显被阻挡的位置等。
选择一条路径(不一定按这个顺序,你需要进行实验——遗憾的是,这没有万能的解决方案):
- 让你存活
- 不让你被困住
- 给你周围最多的空白空间
- 你能想到的其他任何让一个位置比另一个位置更好的启发式方法
研究极小极大算法及其变体。这应该能帮助你构建一个不错的AI。