Python SDK 文档
欢迎使用我们为比赛编写的 Python SDK!本文档将详细介绍可供选手调用的接口和功能,包括参数、返回值类型以及用法示例,帮助您更好地理解如何使用该 SDK 来控制您的 Agent 参与比赛。
仓库链接:agent-python
模版说明
版本要求:Python 3.11
首先请安装依赖项,需要在命令行中输入:
pip install -r requirements.txt
你可以在 logic.py
中编写你的代码,main.py
会调用 setup()
和 loop()
函数以运行你的代码。对于有经验的开发者,你也可以修改项目中的其他任何文件。
在命令行中运行以下命令来启动 Agent:
python main.py --server <server> --token <token>
<server>
:游戏的服务器地址。(默认值:ws://localhost:14514
)<token>
:Agent 的令牌。(默认值:1919810
)
例如:
python main.py --server ws://localhost:14514 --token 1919810
- 运行此模板前,请确保你的环境满足 Python 版本要求,并已正确安装所有依赖项。
- 如果修改了模板内容,可能需要相应地调整运行命令或代码逻辑。
- 在运行前,请务必检查你的服务器地址和令牌是否正确,以确保 Agent 能够成功连接到游戏服务器。
接口介绍
获取信息
-
获取自身令牌
token = agent.token
- 返回类型:
str
token
方法将返回玩家自身的令牌。 - 返回类型:
-
获取所有玩家信息
players_info = agent.all_player_info
- 返回类型:
Optional[List[PlayerInfo]]
all_player_info
属性将返回一个包含所有玩家信息的列表(包括自己的和对手的)。每个玩家信息包括玩家的武器、护甲、技能、位置等。信息- 武器
weapon
包括每种武器的拥有情况。 - 护甲
armor
包括护甲和护甲类技能的基本情况。 - 技能
skill
包括所拥有的技能类别、使用时间等等。 - 位置
position
包括所在地的坐标和坦克朝向。
- 返回类型:
-
获取环境信息
environment_info = agent.environment_info
- 返回类型:
Optional[EnvironmentInfo]
environment_info
属性将返回环境相关的信息,包括所有普通墙体的列表、特殊技能墙体的列表、现存子弹的列表、玩家位置列表。信息- 普通墙体
walls
包括每一处墙体的坐标和朝向。 - 特殊技能墙体
fences
包括每一处墙体的坐标、朝向以及当前生命值。 - 子弹
bullet
包括当前场上每一个子弹的位置、前进方向、速度、伤害大小以及已经飞行的距离。
- 返回类型:
-
获取游戏状态信息
game_statistics = agent.game_statistics
- 返回类型:
Optional[GameStatistics]
game_statistics
属性将返回游戏状态相关信息,包括游戏的当前阶段、游戏的倒计时、游戏当前的 ticks 和每位玩家的累计分数。 - 返回类型:
-
获取奖励信息
available_buffs = agent.available_buffs
- 返回类型:
Optional[AvailableBuffs]
available_buffs
属性将返回一个包含所有可获取奖励的列表。 - 返回类型:
操作 Agent
-
向前移动
agent.move_forward(distance: float = 1.0)
- 参数类型:
distance: float
:需要移动的距离,默认为 1.0。
- 返回类型:
None
使用
move_forward
方法让 Agent 向前移动指定的距离。 - 参数类型:
-
向后移动
agent.move_backward(distance: float = 1.0)
- 参数类型:
distance: float
:需要移动的距离,默认为 1.0。
- 返回类型:
None
使用
move_backward
方法让 Agent 向后移动指定的距离。 - 参数类型:
-
顺时针转动
agent.turn_clockwise(angle: int = 45)
- 参数类型:
angle: int
:转动的角度,默认为 45 度。
- 返回类型:
None
使用
turn_clockwise
方法让 Agent 顺时针转动指定的角度。 - 参数类型:
-
逆时针转动
agent.turn_counter_clockwise(angle: int = 45)
- 参数类型:
angle: int
:转动的角度,默认为 45 度。
- 返回类型:
None
使用
turn_counter_clockwise
方法让 Agent 逆时针转动指定的角度。 - 参数类型:
-
攻击
agent.attack()
- 参数类型:
None
- 返回类型:
None
使用
attack
方法让 Agent 发射子弹。 - 参数类型:
-
使用技能
agent.use_skill(skill: SkillName)
- 参数类型:
skill: SkillName
:技能的种类。
- 返回类型:
None
使用
use_skill
方法让 Agent 使用某一技能。 - 参数类型:
-
选择奖励
agent.select_buff(buff: BuffName)
- 参数类型:
buff: BuffName
:奖励的种类。
- 返回类型:
None
使用
select_buff
方法为 Agent 选择某一奖励。 - 参数类型:
状态查询
-
判断是否连接到服务器
connected = agent.is_connected()
- 返回类型:
bool
is_connected
方法指示 Agent 是否已连接到服务器。 - 返回类型:
-
判断游戏是否准备就绪
ready = agent.is_game_ready()
- 返回类型:
bool
is_game_ready
方法指示游戏是否已准备就绪,即是否已获取到所有必要的游戏状态信息。 - 返回类型: