Python中向动态对象发射子弹的代码是什么



我想在python中使用强化学习来训练AI。目标是AI应该能够将移动的球射到游戏环境中。随机地以不同的速度和从不同的位置。AI(玩家(的位置是固定的,它只能指定子弹的角度。子弹的速度也是固定的。事实上,我不知道在这个连续和随机的环境中,状态和作用是什么。请让我知道是否有任何教程可用于这种类型的游戏环境。大多数游戏RL教程都是关于AI从A点到B点的最佳移动,我认为这不适用于我的问题。

状态可能表示每个球在游戏环境中的位置。如果球的大小不同,那么每个球的大小也必须成为状态的一部分。动作空间将由代理在给定步骤中可能采取的每一个动作组成。这意味着它包括不拍摄,以及在每个可能的角度拍摄。因此,动作空间看起来像[don't shoot, shoot at angle x, shoot at angle y, shoot at angle z...],因此它包含了特工无法拍摄的每个角度。

你应该去看看OpenAI的健身房。这是一个在电子游戏背景下进行强化学习的框架。它为您分解游戏环境和操作空间,并提供游戏状态的逐步更新,允许代理根据游戏环境的状态采取不同的操作。您可以创建自己的环境,或者查看其中一个已经存在的环境。它们大多基于旧的雅达利游戏。

例如,看看Asteroids环境。这可能会以与您上面提出的环境非常相似的方式运行。在《小行星》中,特工试图避免被屏幕上移动的各种小行星击中。它们可以向小行星射击以摧毁它们,也可以移动。然而,如果你强迫你的代理人避免采取"搬家"行动,这基本上可以归结为一个与你描述的问题非常相似的问题。

最新更新