ネットサーフィンをしていたら面白そうなAPIを見つけたので遊んでみました。
↓↓↓↓pokeAPI↓↓↓↓
https://github.com/oscar0812/pokeapi-v2-java
このAPIのPokemonクラスを重点的に調べてみました。
使用するにはpom.xmlに下記の追加に加え、Java15以上でないと使用することが出来ません。
<dependency>
<groupId>com.github.oscar0812</groupId>
<artifactId>pokeapi</artifactId>
<version>1.0.0</version>
</dependency>
使い方
Clientクラスの getPokemonById() 又は getPokemonByName() を使用することでポケモンの情報を取得することが出来ます。
// ピカチュウの全国図鑑No.で取得
Pokemon pikachu = Client.getPokemonById(25);
// ピカチュウの英語名で取得
Pokemon pikachu = Client.getPokemonByName("pikachu");
Pokemonクラスの構成
Pokemon.java の構成は以下の通りです。
public class Pokemon extends NamedAPIResource {
private int id;
private int base_experience;
private int height;
private boolean is_default;
private int order;
private int weight;
private ArrayList<PokemonAbility> abilities;
private ArrayList<PokemonForm> forms;
private ArrayList<VersionGameIndex> game_indices;
private ArrayList<PokemonHeldItem> held_items;
private String location_area_encounters;
private ArrayList<PokemonMove> moves;
private PokemonSprites sprites;
private PokemonSpecies species;
private ArrayList<PokemonStat> stats;
private ArrayList<PokemonType> types;
}
①id
idとはポケモンに登録されてある 全国図鑑No. のことを指します。
フシギダネなら1、ヒトカゲなら4、ゼニガメなら7となります。
②base_experience
base_experienceとはポケモンに登録されてある 基礎経験値 のことを指します。
基礎経験値は敵を倒したときに獲得できる経験値に影響します。
pokemon.wikiより
経験値 = (EXP × A × レベル補正^2.5 + 1) × B × C × D
EXP : 倒されたポケモンのレベル × 倒されたポケモンの基礎経験値 ÷ 5
レベル補正 = (2L + 10) / (L + Lp + 10)
L : 倒されたポケモンのレベル
Lp : 倒したポケモンのレベル
A : (第五世代のみ)トレーナー戦なら1.5、それ以外は1。第七世代では常に1
B : デルパワー・ロトポンの効果。けいけんちパワー+は1.2、++は1.5、+++は2.0、-は0.8、--は0.66、---は0.5。けいけんポンは1.5。
C : 他言語版と交換したポケモンは1.7、同言語と交換したポケモンは1.5、おやが自分であれば1
D : しあわせタマゴを持っていれば1.5、それ以外は1
③height
heightとはポケモンの 高さ を指します。
④isDefault
isDefaultとはポケモンが 通常フォルムであるか を指します。
例) デオキシスにはノーマルフォルムに加え、アタックフォルム・ディフェンスフォルム・スピードフォルムの複数のフォルムが存在する。
↓↓↓↓詳しくは↓↓↓↓
https://yakkun.com/bdsp/zukan/n386
⑤weight
weightとはポケモンの 重さ を指します。
⑥abilities
abilitiesとは ポケモンの持つ可能性のある"とくせい"の情報、"とくせい"に付随する情報(第何世代で実装されたか・夢特性かどうか等) を指します。
例) ピカチュウは個体によって"せいでんき"又は"ひらいしん"という特性を持つ可能性があります。
⑦forms
formsとは、 別フォルムの情報 を指します。
例) デオキシスは複数フォルムが存在するため、各フォルムの情報がListで存在する。
⑧game_indices
game_indicesとは、 そのポケモンが出ているシリーズの情報 を指します。
例) ポケモン赤緑・ポケモン金銀など
⑨held_items
held_itemsとは、 ポケモンが野生ででてきた時に持っている可能性のあるどうぐを指します。
例) ピカチュウであれば"でんきだま"、ラッキーであれば"しあわせタマゴ"など
⑩location_area_encounters
location_area_encountersとは、ポケモンに遭遇する場所のURLを取得できます。
このURLを使用することでシリーズごとにどこで出現するかどうかのデータを取得することができます。
⑪moves
movesとは、ポケモンがもつ""わざ"についての情報を指します。現在持っているわざ・レベルで覚えるわざ・わざマシン、ひでんマシンで覚えるわざなどの情報
⑫sprites
spritesとは、ポケモンの画像を取得できるURLを複数持っています。
例) 通常・色違い・戦闘時の画像(味方)・戦闘時の画像(敵)など
⑬species
speciesとは、ポケモンの性別・捕まえやすさ・なつき度・たまごグループなど詳細なデータを指します。
⑭stats
statsとは、 ポケモンのステータス(個体値と努力値) を指します。
ピカチュウであれば、H35 A55 B40 C50 D50 S90 が個体値。これに努力値をふることでステータスが変化する。
⑮types
typesとは、ポケモンのタイプ を指します。
以上がPokemonクラスが保持している値になります。
まとめ
今回はPokemonクラスを中心に遊んでみました。なかなか根が深く全てを把握しておりませんが、ゲームの中身を覗いているようで面白かったです。
このAPIを使って勉強ついでにWebAPIを作ってみたいと思います。
なにか間違い等ございましたら、ご指摘の程よろしくお願い致します。