1 个不稳定版本
0.2.0 | 2021 年 6 月 14 日 |
---|---|
0.0.1 |
|
#494 in 游戏
46KB
457 行
Rusty Bird
另一个 Flappy Bird 克隆?🦆 Rusty bird 不仅仅是一个 Flappy Bird 克隆。Rusty bird 被编程以便尽可能容易地进入强化学习。借助 Rusty Bird,您可以训练自己的独立代理来玩游戏。
想要用 Python 经典地构建代理吗?也许像 Haskell 或 Elixir 这样的更异国情调的?没问题。Rusty Bird 使用一个 TCP 流,您可以直接连接到它并获取游戏的状态和当前分数。
您绝对应该尝试 Elixir!👀
目录
特性
- 完整的 Flappy bird 游戏
- 通过 TCP 服务器提取游戏状态和分数
用法
Rust bird 是一个 CLI 应用程序,它启动 Flappy bird 游戏。目前您需要的只是可执行文件和已安装的 Rust。
对于预编译版本
您可以使用 rusty-bird start
启动游戏。
从源代码运行应用程序
克隆存储库,并用 cargo run -- start
运行包或使用 cargo build
构建自己的可执行文件
常见问题解答
状态信息看起来像什么样子?
状态作为 JSON 结构发送。它包含玩家的 y-position
、分数以及前三个管道障碍物和玩家之间的距离。
这是它的模式
{
"player": <player y-position>,
"score": <int>,
"pipes": [
[
[<lower x distance>, <lower y distance>],
[<upper x distance>, <upper y distance>]
],
[
[<lower x distance>, <lower y distance>],
[<upper x distance>, <upper y distance>]
],
[
[<lower x distance>, <lower y distance>],
[<upper x distance>, <upper y distance>]
]
]
}
这是示例数据
{
"player": 103.79996,
"score": 0,
"pipes": [
[
[168.0, 267.20004],
[168.0, -182.79996]
],
[
[418.0, 98.20004],
[418.0, -351.79996]
],
[
[668.0, 111.20004],
[668.0, -338.79996]
]
]
}
您将为 Rusty Bird 添加新功能吗?
当然!这个项目对我来说是一个很好的学习经历。已经计划了一些功能,以使您的代理的开发更容易。由于我不是数据科学家,所以我需要您的帮助!😊
许可
Rusty Bird 采用 GNU GPLv3 许可发布
依赖关系
~28–66MB
~1M SLoC