flappy-bird-gymnasium
flappy-bird-gymnasium 是一个基于 OpenAI Gymnasium 的环境,旨在为 Flappy Bird 游戏提供强化学习研究平台。该项目的游戏逻辑和图形实现基于 Talendar 的 flappy-bird-gym 项目。
一、主要特点
1. 状态空间
环境提供两种观察选项:
(1) LIDAR 传感器读取: 基于论文 《基于运动识别的 Flappy Bird 游戏控制方法》,环境提供 180 个 LIDAR 传感器读取值。
(2) 游戏状态数值: 包括以下信息:
• 最后一个管道的水平位置
• 最后一个上方管道的垂直位置
• 最后一个下方管道的垂直位置
• 下一个管道的水平位置
• 下一个上方管道的垂直位置
• 下一个下方管道的垂直位置
• 下下个管道的水平位置
• 下下个上方管道的垂直位置
• 下下个下方管道的垂直位置
• 玩家的垂直位置
• 玩家的垂直速度
• 玩家的旋转角度
2. 动作空间
包含两个动作:
• 0 - 不采取任何动作
• 1 - 拍动翅膀
二、奖励机制
• 每存活一帧:+0.1
• 成功通过一个管道:+1.0
• 死亡:-1.0
• 触碰屏幕顶部:-0.5
三、安装方法
使用以下命令安装 flappy-bird-gymnasium:
pip install flappy-bird-gymnasium
四、使用方法
以下是一个简单的示例,展示如何创建环境并运行一个随机策略的智能体:
import flappy_bird_gymnasium
import gymnasium as gym# 创建环境
env = gym.make("FlappyBird-v0", render_mode="human", use_lidar=True)# 重置环境
obs, _ = env.reset()while True:
# 选择动作(此处为随机选择)
action = env.action_space.sample()# 执行动作
obs, reward, terminated, _, info = env.step(action)# 检查游戏是否结束
if terminated:
break# 关闭环境
env.close()
五、人类玩家模式
您可以通过以下命令以人类玩家模式玩游戏:
flappy_bird_gymnasium
要观看随机智能体的游戏过程,可以使用以下命令:
flappy_bird_gymnasium --mode random
此外,该项目还提供了一个使用深度 Q 网络(DQN)算法的智能体,您可以通过以下命令观看其表现:
flappy_bird_gymnasium --mode dqn
六、关于项目
该项目的源代码和详细信息可在其 GitHub 仓库中找到:
https://github.com/markub3327/flappy-bird-gymnasium
该仓库提供了关于环境的详细说明、安装指南以及使用示例,适合用于强化学习算法的开发和测试。