Python中向动态物体发射子弹的代码是什么?
What is the code of shooting bullets to dynamic objects in Python?
我想在 python 中使用强化学习训练 AI。目标是 AI 应该能够在游戏环境中射出移动的球。随机以不同的速度和不同的位置。 AI(玩家)的位置是固定的,只能指定子弹的角度。子弹速度也是固定的。实际上,我不知道在这种连续和随机的环境中,状态和动作是什么。如果有任何适用于此类游戏环境的教程,请告诉我。大多数游戏 RL tuts 都是关于 AI 从 A 点到 B 点的最佳移动,我认为这不适用于我的问题。
状态可能表示每个球在游戏环境中的位置。如果球的大小不同,那么每个球的大小也必须成为状态的一部分。动作 space 将包含代理在给定步骤中可能采取的所有动作。这意味着它包括不拍摄,以及在每个可能的角度拍摄。因此,动作 space 看起来类似于 [don't shoot, shoot at angle x, shoot at angle y, shoot at angle z...]
,因此它包含代理无法射击的每个角度。
您应该研究的一个图书馆是 OpenAI 的健身房。它是在视频游戏的背景下进行强化学习的框架。它为您分解游戏环境和动作space,并提供游戏状态的逐步更新,让代理根据游戏环境的状态采取不同的动作。您可以创建自己的环境,或者查看其中一个已经存在的环境。它们主要基于旧的 Atari 游戏。
例如,看看Asteroids环境。这可能会以与您上面建议的环境非常相似的方式运行。在小行星中,代理试图避免被屏幕上移动的各种小行星击中。他们可以射击小行星以摧毁它们,也可以移动。但是,如果您要强迫您的代理人避免采取 "move" 操作,它基本上可以归结为与您描述的问题非常相似的问题。
我想在 python 中使用强化学习训练 AI。目标是 AI 应该能够在游戏环境中射出移动的球。随机以不同的速度和不同的位置。 AI(玩家)的位置是固定的,只能指定子弹的角度。子弹速度也是固定的。实际上,我不知道在这种连续和随机的环境中,状态和动作是什么。如果有任何适用于此类游戏环境的教程,请告诉我。大多数游戏 RL tuts 都是关于 AI 从 A 点到 B 点的最佳移动,我认为这不适用于我的问题。
状态可能表示每个球在游戏环境中的位置。如果球的大小不同,那么每个球的大小也必须成为状态的一部分。动作 space 将包含代理在给定步骤中可能采取的所有动作。这意味着它包括不拍摄,以及在每个可能的角度拍摄。因此,动作 space 看起来类似于 [don't shoot, shoot at angle x, shoot at angle y, shoot at angle z...]
,因此它包含代理无法射击的每个角度。
您应该研究的一个图书馆是 OpenAI 的健身房。它是在视频游戏的背景下进行强化学习的框架。它为您分解游戏环境和动作space,并提供游戏状态的逐步更新,让代理根据游戏环境的状态采取不同的动作。您可以创建自己的环境,或者查看其中一个已经存在的环境。它们主要基于旧的 Atari 游戏。
例如,看看Asteroids环境。这可能会以与您上面建议的环境非常相似的方式运行。在小行星中,代理试图避免被屏幕上移动的各种小行星击中。他们可以射击小行星以摧毁它们,也可以移动。但是,如果您要强迫您的代理人避免采取 "move" 操作,它基本上可以归结为与您描述的问题非常相似的问题。