2020/02/28 追記
完成しました!
今までの軌跡
GUI化できなくとも、一応ダメージ計算ツールはそれっぽいものができました。
ので、今回からはその次のステップ。
ダメージ計算ツールを活かして、
努力値調整ツール
なるものを作成したいと思います。
いや、GUI化諦めたわけではないよ??????????
ポケモン剣盾用の耐久努力値調整ツールを作成しました! ぜひ使ってみてください!
経緯・目的
皆さんがポケモンを育成するにあたり、一番めんどくさいと思う工程はどこでしょうか?
厳選?努力値振り?レベル上げ?
様々な方がいると思いますが、私の場合は努力値調整。
〇〇の攻撃を耐えて、素早さは最速▲▲抜きで、◇◇を確定で落とせて・・・
みたいな調整が非常にだるい。
だから私の育成するポケモンにはぶっぱが多いのですが・・・
ので、「〇〇の攻撃を耐えて、素早さは最速▲▲抜きで、◇◇を確定で落とせて・・・」
みたいな情報を入力したら、自動的に努力値配分を計算してくれるツールが欲しい。
ずっとそんなことを考えておりました。
で、前回ダメ計部分がおおかた完成したので、ようやく本題に着手できるというわけです。
耐久調整アルゴリズム
努力値調整で一番めんどくさいのが耐久調整。
いじるパラメータがHBDと3種類あり、効率化まで考えると無限にめんどくさい。
さらにたべのこしの回復や天候によるダメージを含めて計算とかとなると果てしなくめんどくさい
総じてめんどくさい。
ので、まずはここを最初に自動化すべきだと検討。
努力値計算のアルゴリズムはどうするかというと、
総当たり
・・・はちょっと乱暴すぎるので、H振り偏重か、DB振り偏重かを指定して、あとは総当たりするパターンを考えました。
結局総当たり。
詳細は省きますが、H偏重なら
- Hを252まで順番に振っていく→ダメ計
- まだ耐えられなければBorDに振っていく→ダメ計
- それでも耐えられない場合はErrorで返す
- 耐えられた時点の努力値を計算する
みたいな感じ。省きすぎな。
計算に時間がかかるかもですが、一番単純でコード自体の可読性もまだましなのでこれでいきます。
クイックソートとかそういうアルゴリズム使う頭が無いだけですけど。
試作
というわけで簡単に試作してみました。
今回試験として調整するポケモンは以下。
調整ポケモン
ギャラドス
性格:ようき
個体値:6V
持ち物:なし
仮想敵
トゲキッス
性格:控えめ
個体値:6V
努力値:H252 C252
持ち物:いのちのたま
調整内容
上記Cぶっぱトゲキッスの
- エアスラッシュ
- マジカルシャイン
を耐えるように調整したいと思います。
※なお、天候や状態異常によるダメージは考慮しないとする
結果
つまり、
H244 D60
振れば、上記の技を耐えられるという計算結果になりました。
検算
こちらのダメ計サイト様で検算してみました。
エアスラッシュ 最大ダメージ:97
マジカルシャイン 最大ダメージ:103
私が作成した調整ツールと同じ結果が出ていますね。
耐久調整についてはちゃんとできていそうです。
ちなみに
たべのこしを持たせて、1回食べ残しの回復が入ると計算したうえで調整をかけるとこんな感じ。
H252振りだけで耐えられるようになります。
他にも天候ダメや火傷や毒等の状態異常ダメージを入れて計算することもできるようにしております。
ステロダメとかまきつく系の定数ダメ対応はまだですけど。。。
今後の展望
まずはGUI化
ですよね。ええ。
単純な耐久調整計算はできるっぽいので、GUI化して公開して使用感を確かめてもらって、フィードバックを貰って改良して・・・
ってしたいんですけど、一向にWEB化が進まない。
本腰入れてHTMLも勉強します・・・
あとは耐久調整だけでなくて、攻撃側の調整とか、素早さ調整とかも自動でできるようにしたいですね。
素早さは多分簡単に実装できるので、まずはそこからかな。
そして、一番の課題はダイマックスに対応していないこと。
特に、途中でダイマックスするようなパターンが入るとかなり計算が複雑化します。
逆にダイマックス技の対応は割とライトにできそうなので、そちらは着手していこうかな・・・
公開はまだまだ先になりそうですが、気長にお待ちください・・・・
コメント