はじめまして、佐藤です。
ポケモンだいすきエンジニアです。
公式ドキュメントを参考にPokéAPIを利用して取得できる値の紹介をしたいと思います。
今回は「タイプ」編となります。(ポケモンに関する用語を多少知っていないと意味がわからないかもしれません)
PokéAPIとは(ざっくり)
莫大なポケモンの情報を取得することができるRESTful-APIです。
https://pokeapi.co/
値の取得方法
情報を取得するだけであれば非常に簡単です。
情報が知りたいタイプに合わせて以下のURLを実行すれば、
そのタイプに関連する情報がJSON形式で表示されたページにアクセスできます。
https://pokeapi.co/api/v2/type/{id or name}/
idとnameはそれぞれ以下のように対応しています。
たとえば、でんきタイプの情報が知りたい場合は以下のどちらかのリンクからアクセスすることができます。
https://pokeapi.co/api/v2/type/13/
https://pokeapi.co/api/v2/type/electric/
id | name | タイプ名 |
---|---|---|
1 | normal | ノーマル |
2 | fighting | かくとう |
3 | flying | ひこう |
4 | poison | どく |
5 | ground | じめん |
6 | rock | いわ |
7 | bug | むし |
8 | ghost | ゴースト |
9 | steel | はがね |
10 | fire | ほのお |
11 | water | みず |
12 | grass | くさ |
13 | electric | でんき |
14 | psychic | エスパー |
15 | ice | こおり |
16 | dragon | ドラゴン |
17 | dark | あく |
18 | fairy | フェアリー |
取得できる値
じめんタイプを例に取得できる値を見てみます。
id
PokéAPIにおける識別子
"id":5
name
PokéAPIにおける名称
"name":"ground"
damage_relations
タイプ相性の詳細
{"damage_relations":"no_damage_to":[{"name":"flying"...}
no_damage_to
攻撃側で効果がない(無効)タイプ
"no_damage_to":[{"name":"flying","url":"https://pokeapi.co/api/v2/type/3/"}]
half_damage_to
攻撃側で効果がいまひとつ(半減)になるタイプ
"half_damage_to":[{"name":"bug","url":"https://pokeapi.co/api/v2/type/7/"},...]
double_damage_to
攻撃側で効果が抜群(2倍)になるタイプ
"double_damage_to":[{"name":"poison","url":"https://pokeapi.co/api/v2/type/4/"},...]
no_damage_from
防御側で効果がない(無効)タイプ
"no_damage_from":[{"name":"electric","url":"https://pokeapi.co/api/v2/type/13/"}]
half_damage_from
防御側で効果がいまひとつ(半減)になるタイプ
"half_damage_from":[{"name":"poison","url":"https://pokeapi.co/api/v2/type/4/"},...]
double_damage_from
防御側で効果が抜群(2倍)になるタイプ
"double_damage_from":[{"name":"water","url":"https://pokeapi.co/api/v2/type/11/"},...]
game_indices
そのタイプに関連する世代情報のリスト
"game_indices":[{"game_index":4,"generation":{"name":"generation-i","url":"https://pokeapi.co/api/v2/generation/1/"}},...]
generation
そのタイプが初めて登場した世代
"generation":{"name":"generation-i","url":"https://pokeapi.co/api/v2/generation/1/"}
move_damage_class
わざにおける分類(ダメージなし(変化)/物理/特殊 の3種類)
この場合は第3世代までにおける物理/特殊区分と考えて良い1
names
各言語での名称のリスト
"names":[{"language":{"name":"ja-Hrkt","url":"https://pokeapi.co/api/v2/language/1/"},"name":"じめん"},...]
pokemon
そのタイプをもつポケモンのリスト
"pokemon":[{"pokemon":{"name":"sandshrew","url":"https://pokeapi.co/api/v2/pokemon/27/"},"slot":1},...]
moves
そのタイプのわざのリスト
"moves":[{"name":"sand-attack","url":"https://pokeapi.co/api/v2/move/28/"},...]
あとがき
PokéAPIを使う際の参考になれば幸いです。
今回、はじめてQiita記事を書きました。
今後もPokéAPIやポケモンの話やその他技術について書いていきたいと思います。
-
第4世代以降はわざごとに物理/特殊がわかれているが、第3世代まではタイプごとに物理/特殊がわかれていた
"move_damage_class":{"name":"physical","url":"https://pokeapi.co/api/v2/move-damage-class/2/"}
↩