首先,这是吃豆人的人工智能,而不是幽灵。
我正在编写一个围绕你的图标播放 PacMan 的 Android 动态壁纸。虽然它通过屏幕触摸支持用户建议,但大部分游戏将由 AI 玩。我已经完成了 99% 的游戏编程,但 PacMan 本人的 AI 仍然非常薄弱。我正在寻求帮助来开发一个好的人工智能来确定 PacMan 的下一个旅行方向。
我最初的计划是这样的:
- 用零值初始化每个方向的分数计数器。
- 从当前位置开始,使用 BFS 通过将四个可能的初始方向添加到队列中向外遍历。
从队列中弹出一个元素,确保它还没有被“看到”,确保它是一个有效的棋盘位置,并在相应的初始方向上添加一个基于当前单元格的值:
- 有一个点:加10
- 拥有力量:加50
- 有果实:加果实值(因等级而异)
- 有一个幽灵向吃豆人移动:减去 200
- 有鬼离开吃豆人:什么都不做
- 有鬼垂直行进:减去 50
- 将单元格的值乘以基于到单元格的步数的百分比,从初始方向开始的步数越多,单元格的值越接近零。
并将当前单元格中的三个可能方向排入队列。
- 一旦队列为空,为四个可能的初始方向中的每一个找到最高分数并选择它。
这在纸上听起来不错,但 PacMan 周围的幽灵非常迅速,他在相同的两三个牢房中来回抽搐,直到一个到达他身边。调整幽灵存在的值也无济于事。我最近的点BFS至少可以在游戏结束前达到2级或3级。
我正在寻找用于开发适当 AI 的代码、想法和/或资源链接——最好是前两者。我想在这个周末的某个时候在市场上发布这个,所以我有点着急。任何帮助是极大的赞赏。
仅供参考,这是在GameDev.StackExchange上手动交叉发布的