Player¶
Player ¶
Player(username: str = '')
バトルプレイヤーを表すクラス。
属性:
| 名前 | タイプ | デスクリプション |
|---|---|---|
username |
プレイヤー名 |
|
team |
list[Pokemon]
|
ポケモンチームのリスト(最大6匹)。コンストラクタ〜対戦開始前の
スナップショットであり、 |
n_finished_battles |
int
|
対戦数 |
n_won_battles |
int
|
勝利数 |
rating |
float
|
レーティング値 |
Note
team へポケモンを追加するには add_pokemon() を使う(from jpoke import
Pokemon が不要になる)。team.append(Pokemon(...)) でも動作するが、
Pokemon を直接構築する場合に比べて import が1つ減る分、導入時の
依存関係が単純になる。
Playerインスタンスを初期化する。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
username
|
str
|
プレイヤー名(デフォルトは空文字列) |
''
|
ソースコード位置: src/jpoke/core/player.py
41 42 43 44 45 46 47 48 49 50 51 52 | |
add_pokemon ¶
add_pokemon(name: PokemonName, gender: Gender = '', nature: Nature = 'まじめ', level: int = 50, ability: AbilityName = '', item: ItemName = '', moves: list[MoveName] | None = None, tera_type: Type | None = None, evs: dict[Stat, int] | None = None, ivs: dict[Stat, int] | None = None) -> Pokemon
ポケモンを1体作成し、チームに追加する。
from jpoke import Pokemon を使わずにチームを組める、team への
正規の追加ルート。evs/ivs 以外の引数は Pokemon.__init__ にそのまま渡す。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
evs
|
dict[Stat, int] | None
|
Champions形式の努力値(各値0〜32)を指定するステータスのみの辞書。
|
None
|
ivs
|
dict[Stat, int] | None
|
個体値を指定するステータスのみの辞書。 |
None
|
戻り値:
| 名前 | タイプ | デスクリプション |
|---|---|---|
Pokemon |
Pokemon
|
追加したポケモンのインスタンス(交代先の参照などに使う) |
ソースコード位置: src/jpoke/core/player.py
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | |
choose_selection ¶
choose_selection(battle: Battle) -> list[int]
選出番号を返す
デフォルト実装では先頭から順番に選出する。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
battle
|
Battle
|
バトルオブジェクト |
必須 |
戻り値:
| タイプ | デスクリプション |
|---|---|
list[int]
|
選択された選出番号のリスト |
ソースコード位置: src/jpoke/core/player.py
120 121 122 123 124 125 126 127 128 129 130 131 132 | |
choose_command ¶
choose_command(battle: Battle) -> Command
コマンドを選択する。
デフォルト実装では利用可能な行動コマンドの最初の1つを返す。この既定実装は
決定的(常に先頭のコマンドを選ぶ)で、seed を変えても展開が変わらない。
Player.battle_against() で複数回対戦して統計比較する場合など、行動選択に
分散が必要な場合は jpoke.players.RandomPlayer を使うとよい。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
battle
|
Battle
|
バトルオブジェクト |
必須 |
戻り値:
| タイプ | デスクリプション |
|---|---|
Command
|
選択された行動コマンド |
ソースコード位置: src/jpoke/core/player.py
134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 | |
battle_against ¶
battle_against(*opponents: 'Player', n_battles: int = 1, on_battle_end: Callable[['Battle'], None] | None = None, **battle_kwargs: Any) -> None
poke-env 互換: 各 opponent と n_battles 回ずつ対戦し、双方の戦績を更新する。
poke-env と同じシグネチャ。ただしネットワーク I/O がないため同期メソッド (await / asyncio.run は不要)。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
*opponents
|
'Player'
|
対戦相手のPlayerインスタンス(複数指定可) |
()
|
n_battles
|
int
|
各opponentと対戦する回数(デフォルト1) |
1
|
on_battle_end
|
Callable[['Battle'], None] | None
|
poke-envにはないjpoke独自の拡張。各対戦の
|
None
|
**battle_kwargs
|
Any
|
|
{}
|
Note
ターン数が MAX_TURNS に達しても決着しない対戦は、勝者を強制的に
決めず(tod_score() 等によるダメージレース判定は行わない)、
戦績に一切数えない(n_finished_battles もインクリメントしない)。
対戦の成立・不成立を戦績に反映する方が、引き分けを持たない
jpokeの仕様(n_tied_battles は常に0)と整合するための判断。
ソースコード位置: src/jpoke/core/player.py
151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 | |