Pokemon Showdown Python 环境
一个用于创建对战宝可梦智能体的 Python 接口。poke-env
提供了一个易于使用的接口,用于创建基于规则或训练强化学习机器人,以在 Pokemon Showdown 上进行对战。
入门
智能体是继承自 Player
的 Python 类的实例。以下是你的第一个智能体可能的样子:
class YourFirstAgent(Player):
def choose_move(self, battle):
for move in battle.available_moves:
if move.base_power > 90:
# 一个强力的招式!让我们使用它
return self.create_order(move)
# 没有可用的招式?那就切换宝可梦吧!
for switch in battle.available_switches:
if switch.current_hp_fraction > battle.active_pokemon.current_hp_fraction:
# 这只宝可梦剩余的 HP 更多... 要切换到它吗?
return self.create_order(switch)
# 不确定该怎么做?
return self.choose_random_move(battle)
要开始使用,请查看我们的文档!
文档和示例
详细的文档、示例和入门代码可以在 readthedocs 上找到。
安装
本项目需要 Python >= 3.8 和一个 Pokemon Showdown 服务器。
pip install poke-env
你可以使用 Smogon 的服务器 来测试你的智能体与人类对战,但强烈建议使用开发服务器。特别是,建议使用 --no-security
标志运行本地服务器,以关闭大部分速率限制和节流。请参阅文档以获取详细的设置说明。
git clone https://github.com/smogon/pokemon-showdown.git
cd pokemon-showdown
npm install
cp config/config-example.js config/config.js
node pokemon-showdown start --no-security
开发版本
你也可以克隆最新的主分支版本:
git clone https://github.com/hsahovic/poke-env.git
然后可以使用以下命令安装依赖项和开发依赖项:
pip install -r requirements.txt
pip install -r requirements-dev.txt
致谢
这个项目是 Ecole Polytechnique 人工智能课程的一个小组项目的后续。
你可以在这里找到原始仓库。它部分受到 showdown-battle-bot 项目 的启发。当然,如果没有 Pokemon Showdown,这些都不可能实现。
队伍数据来自 Smogon 论坛的 RMT 部分。
数据
数据文件是 Pokemon Showdown 的 js
数据文件的改编版本。
许可证
引用 poke-env
@misc{poke_env,
author = {Haris Sahovic},
title = {Poke-env: pokemon AI in python},
url = {https://github.com/hsahovic/poke-env}
}