加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – PacMan角色AI建议,为最佳下一个方向

发布时间:2020-12-15 02:21:08 所属栏目:Java 来源:网络整理
导读:首先,这是PacMan的AI,而不是幽灵. 我正在写一个Android动态壁纸,围绕你的图标播放PacMan.虽然它通过屏幕触摸支持用户建议,但大部分游戏都将由AI播放.我99%完成了游戏的所有编程,但PacMan自己的AI仍然非常弱.我正在寻找帮助来开发一个好的AI来确定PacMan的下
首先,这是PacMan的AI,而不是幽灵.

我正在写一个Android动态壁纸,围绕你的图标播放PacMan.虽然它通过屏幕触摸支持用户建议,但大部分游戏都将由AI播放.我99%完成了游戏的所有编程,但PacMan自己的AI仍然非常弱.我正在寻找帮助来开发一个好的AI来确定PacMan的下一个旅行方向.

我最初的计划是这样的:

>为每个方向初始化一个得分计数器,其值为零.
>从当前位置开始,并使用BFS通过将它们添加到队列中以四个可能的初始方向向外遍历.
>从队列中弹出一个元素,确保它尚未被“看到”,确保它是一个有效的电路板位置,并根据以下内容添加到相应的初始方向为当前单元格评分值:

>有一个点:加10
>上电:加50
>有水果:加水果价值(因水平而异)
>鬼魂向PacMan旅行:减去200
>有一个幽灵离开PacMan:什么都不做
>鬼魂垂直移动:减去50
>将单元格的值乘以基于单元格步数的百分比,从初始方向开始的步数越多,单元格的值越接近零.

并从当前单元格中排列三个可能的方向.
>队列为空后,找到四个可能的初始方向中的每一个的最高分数并选择该分数.

这对我来说在纸上听起来不错,但幽灵非常迅速地围绕着PacMan,他在相同的两三个细胞中来回抽搐,直到一个人到达他身边.调整重影存在的值也无济于事.在游戏结束前,我最近的点BFS至少可以达到2级或3级.

我正在寻找代码,想法和/或资源链接来开发适当的AI – 最好是前两者.我想在本周末的某个时间在市场上发布这个,所以我有点匆忙.任何帮助是极大的赞赏.

仅供参考,这是在GameDev.StackExchange手动交叉发布的

解决方法

如果PacMan卡在一个位置并且开始来回抽搐,那么它表明在你运行你的指标后,对他开放的不同动作的分数非常相似.然后幽灵的小位置变化将导致最佳的移动来回翻转.您可能需要考虑添加一些 hysteresis以阻止这种情况发生.

设置:选择随机移动并将其记录为得分0.

对于每一步:

>在可用的移动上运行评分功能.
>如果最高分数比记录分数大x%,则覆盖记录分数并随此移动.
>申请搬家.

这就会导致PacMan不再选择每一步的“最佳”动作,但看起来贪婪的本地搜索似乎不是最优的.这将使PacMan更加稳定并停止抽搐.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读