コンテンツにスキップ

MaxDamagePlayer

MaxDamagePlayer

MaxDamagePlayer(username: str = '')

Bases: Player

自分の場のポケモンが繰り出せる技のうち、相手の場のポケモンに与える 最低保証ダメージ(乱数下振れ)が最大になる技を選ぶプレイヤー。

比較対象・ベースラインとして使う単純な方策実装。技以外のコマンド (交代等)は候補にせず、常に技コマンドの中から選ぶ。選出は Player.choose_selection()(既定実装、先頭から順に選出)のまま。

ソースコード位置: src/jpoke/core/player.py
41
42
43
44
45
46
47
48
49
50
51
52
def __init__(self, username: str = ""):
    """Playerインスタンスを初期化する。

    Args:
        username: プレイヤー名(デフォルトは空文字列)
    """
    self.username = username

    self.team: list[Pokemon] = []
    self.n_finished_battles: int = 0
    self.n_won_battles: int = 0
    self.rating: float = 1500

choose_command

choose_command(battle: Battle) -> Command

利用可能なコマンドのうち、最大ダメージを与える技コマンドを選ぶ。

ソースコード位置: src/jpoke/players/max_damage_player.py
17
18
19
20
def choose_command(self, battle: Battle) -> Command:
    """利用可能なコマンドのうち、最大ダメージを与える技コマンドを選ぶ。"""
    commands = battle.available_commands(self)
    return max(commands, key=lambda command: self._damage(battle, command))