我正在编写一个Android动态壁纸,它会在您的图标周围播放PacMan游戏。虽然它支持通过屏幕触摸来接受用户建议,但大部分游戏将由AI来玩。我已经完成了99%的游戏编程,但是PacMan本身的AI仍然非常薄弱。我正在寻求帮助开发一个良好的AI来确定PacMan下一步的行进方向。
我的初步计划是:
- 为每个方向初始化一个分数计数器,初始值为零。
- 从当前位置开始,并使用BFS遍历四个可能的初始方向,将它们添加到队列中。
从队列中弹出一个元素,确保它尚未被“看到”,确保它是一个有效的棋盘位置,并根据以下规则将当前单元格的值添加到相应的初始方向分数中:
- 有点:加10分
- 有能量增强道具:加50分
- 有水果:加上水果价值(随等级变化)
- 有朝向PacMan的幽灵:减200分
- 有远离PacMan的幽灵:不进行操作
- 有垂直行进的幽灵:减50分
- 将单元格的值乘以基于到达该单元格的步数的百分比,步数越多,距离初始方向越近,单元格的值就越接近于零。
并将当前单元格的三个可能方向入队。
- 一旦队列为空,请找到四个可能的初始方向中得分最高的一个,并选择它。
在纸面上听起来不错,但幽灵们会极快地包围PacMan,他会在同两三个单元格中来回抽搐,直到其中一个接近他。调整幽灵存在的值也没有帮助。我的最近点BFS至少可以在游戏结束前达到第2或第3关。
我正在寻找编写正确AI的代码、想法和/或资源链接--最好是前两者。我希望在本周末发布这个应用,所以我有点急。非常感谢任何帮助。
顺便说一下,这是手动转载在GameDev.StackExchange上的