ポケモン剣盾のダメージ計算ツールを作りたいお話 その1

プログラミング
スポンサーリンク

 

2020/02/28 追記

完成しました!

 

今回はほぼ雑記です。

 

その2

その3

 

PokeDefCalc

ポケモン剣盾用の耐久努力値調整ツールを作成しました! ぜひ使ってみてください!

スポンサーリンク

あらまし

ポケモンが発売されるたびに毎回検討していて、挫折するポケモンダメ計ツールの作成。

今回はポケモンがかなりリストラされたことで作成するデータも少なくすみ、またダイマックス自体も単純にHPが倍になるだけの計算ですむので、

いつも諦めていたダメージ計算ツールを作成するのはこのタイミングでは?

と思い着手し始めました。

 

ちなみに、すでにこういったツールは世に出回っているので今更作成する意味は全く持ってありません。

単純に自分の勉強+自己満足のためにやろうとしております。

 

プログラミング言語

現在はブラウザアプリが主流だと思いますが、今後やりたいことを考えるとC#Pythonか。

最終的には画像処理とかも組み合わせて色々したいので、画像認識等に強い言語で、自身が触ったことのあるものと言えば以上2つぐらい。

Windows上でGUI操作できればあとは何でもよい気がします。

最終的にAPI化して配れれば良いですね。(配るとは言っていない)

 

久しぶりにC#触ったら型がガチガチで結構しんどかった・・・

オブジェクト指向ってこんなめんどくさかったっけ・・・・・・

 

必要なデータ

ポケモンのダメージ計算を行う上で必要なデータを考えます。

ダメージ計算式は以下。

[{(攻撃側のレベル × 2 ÷ 5 + 2) × (威力 × 攻撃側の攻撃or特攻 ÷ 防御側の防御or特防) ÷ 50 + 2} × 乱数幅(0.85,0.86,…0.99,1.00)] × 一致補正など

https://w.atwiki.jp/terabi_pokemon/pages/42.html

色々書いていますが、重要なのは「攻撃」「特攻」「防御」「特防」等のポケモンのステータスと、「威力」(技の威力のことだと思います)、そして一致補正等の部分でしょうか。

つまり、ポケモンのステータスと技の威力さえデータとして持っておけば、ダメ計ツールは作れるはず。

一致補正などの部分は多分アプリケーション側で吸収できるでしょう(たぶん(たぶん

 

というわけでまずはポケモンのデータを収集する旅に出かけます。

 

収集方法

こういうのって多分githubに上げてくれてる人いるでしょ、と思って調べていたのですが、なかなかHITせず。

情報が古かったり、Pokemon GO用のデータだったりとなかなか出てこなかったので、

「こりゃ自分で作ったほうが早いな」

と思考。

この辺とかこの辺が検索で出てきたけど、どっちも古かった・・・

 

流石に手打ちでデータを作っていると、ポケモンが半分ぐらいリストラされたと言っても日が何回も暮れてしまうので、WEBからさくっとスクレイピング。

Pythonでサクサクっと書き書きしました。

  • 名前
  • 特性
  • タイプ
  • 身長/体重(けたぐり等の計算に利用)
  • 種族値
  • 覚える技

あたりをサクッと収集。

csv化して保存。jsonのほうが今は取り回しはいいんかな?まあでもcsvとjson変換は簡単にできるし大丈夫でしょう

やっぱりpythonはこういうサクッと系の処理させるのは便利ですね。

ちなみに作成したcsvはこちら。※直DL

gitでも配ってるんだからここで配っても大丈夫でしょう・・・?

怒られたら消します。

 

ちなみに、スクレイピングを禁止しているサイトもありますので、きちんと利用規約を読んで行うこと。

 

今後の展望

まだ必要なデータがそろっていないので、次は技リストの作成を行う予定。

取り合えずデータさえ揃ってしまえばあとは四則演算が得意なコンピュータ様に任せればいいだけなので、がんばろう・・・。

ちなみに、このシリーズの記事が続くかどうかは私のプログラミングの意欲と時間と根気にかかっております。

ルンファクの記事みたいにいきなりなかったことにされたりすることもあります。

あと先にポケモンに飽きたら水泡です。

  

コメント

  1. どのサイトからスクレイピングしましたか?
    自分もプログラミングの勉強中で参考にしたいと思っています。
    よろしくお願いいたします。

    あと、csvファイルの文字コードも教えてもらえたら大変嬉しいです。
    よろしくお願いします。

    • vatch より:

      スクレイピングはPokemon Database様からです
      タグ的にここからが一番引っ張ってきやすそうでした。
      ※利用規約的にも多分OKだったかと・・英語なので見逃しているかもしれませんが・・

      英語→日本語はポケモン徹底攻略様の「技 英語名リスト」ページを参考にしました。
      文字コードはUTF-8だったと思います。

  2. じゃんきー より:

    公開されているCSVを使わせていただき、図鑑管理用のスプレッドシートを作成させていただきました。
    まさに、Gitとかにデータ上がってないかなーと探していたところだったので、ありがたかったです。

    作成したスプレッドシート公開しようと思っているのですが、
    こちらのWEB Siteをデータの引用元として紹介させてもらっても良いでしょうか?

    • vatch より:

      じゃんきー様
      問題ありませんが、csvに不備があったので近く修正する予定です。
      可能であればそれから使用していただけると幸いです・・・

タイトルとURLをコピーしました