ポケモン 剣 盾 ダメージ 計算。 【ダメージ暗算】新技を食らっても大丈夫?【ポケモン剣盾】

【ポケモン剣盾】努力値自動調整ツールをつくりたい その1

ポケモン 剣 盾 ダメージ 計算

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

次の

【ポケモン剣盾事前知識】同じ状況で技を撃つとダメージが変わるのはなぜか【乱数】

ポケモン 剣 盾 ダメージ 計算

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

次の

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

ポケモン 剣 盾 ダメージ 計算

プログラミング言語 前回、C かPythonか、と言っていましたが、 将来的にWEBアプリケーション化したいということを考慮して、 Pythonで書くことにしました。 というか、久しぶりにC いじったら、型宣言ガチガチすぎて自分の頭ではうまくいかなさそうだったので・・・ 昔はC よく使ってたんですけどね・・・Pythonに慣れたら全然書けなくなったわ あと、Pythonはライブラリが豊富で導入もpipで簡単、というメリットもありますしね。 今回の目標 取り合えず、ダメージ計算の手前まで。 具体的にはポケモンのステータス計算までを作成したい。 前回、ポケモンデータシートまでは作成したので、ステータス計算までなら簡単に実装できそうですし。 まずは着手しやすいところからやっていきましょう。 設計 ダメ計ツールの全体設計をざくっとまとめました。 中学生でももっとまともな構成図作るぞって突っ込まれそうですがおっしゃるとおりです。 言いたいことは、• それぞれの役割を持たせたライブラリ(的なもの)を作る• ライブラリ同士は干渉しない(例えば、ダメージ計算ライブラリでステータス計算ライブラリの関数は使用しない)• 全てのライブラリにアクセスできる管理プログラムにてダメ計を行う って感じです。 よくあるソフトウェア開発手法ですね。 こういうのなんていう開発手法だっけか・・・・カプセルなんちゃらではなくて・・・ ステータス計算ライブラリを作ってみる 要件 要件定義。 とはいえ今回は単純。 ポケモンの種族値、個体値、努力値、レベル、性格補正を入力するとステータスが算出される ということだけ。 引数は全てint(もしくはfloat) まあ型はPython側が勝手に判断してくれるので楽です。 「え、ポケモンの名前入れたら勝手に種族値とか計算してくれるようにしないの?」 と突っ込まれそうですが、その処理は別のライブラリに任せようと思っているので、 今回は数値を入力すると数値が出てくる、というだけで良いです。 xn--rckteqa2e. 単純な計算式なので、プログラミング勉強にも使えそう。 プログラミング さくっと作ってみました。 HPを計算する式とそれ以外の計算式が違うので、関数は2つ用意。 関数を分けすぎるのも嫌ですが、無理して合算させるのも個人的に可読性が低くなる可能性があるのでこれぐらいがちょうどいいかな?と思います。 あと、変数名とかは全部てきとー。 何ならa, b, cとかにしようと思ったけど未来の自分に怒られそうな気がしたので、必要最低限分かるよう単語をチョイス。 なお英語偏差値は30。 TOIEC点数は 295点。 鉛筆転がしたほうが高い点数取れるじゃねえか・・・ 関数名って、何か返す場合はget~ってやることが多いんだけど、個人的にgetとかsetってプロパティをいじるときに使う関数だと思っているので今回はこんな感じの関数名に。 あとは キャメルでも スネークでもどんな書き方でも良いと思います。 個人的には キャメル型が好き。 関数や変数の命名規則も特に決めてないので、多分完成したときの可読性は著しく悪いと予想されます。 グローバルな命名規則なんかも把握していないし。 趣味プログラマだから仕方ない() 引数に使う変数は最初にアンダーバーをつけるようにだけ気を付けています。 テスト main関数を書いて、テストしてみます。 今回入力する数値はこちら• ポケモンはタチフサグマ(種族値:93-90-101-60-81-95)• 個体値は6V• 努力値はH252 B252 S4• レベル50• 性格はわんぱく こう見るとタチフサグマの種族値優秀ですね・・・ ミミッキュ抜けないのが残念過ぎますけど。 1, 0. 一応、ポケモン徹底攻略様のステータス表と見比べても問題なさそうです。 所感 プログラミングの初歩的な知識だけで実装できるので、プログラミングの勉強にもってこいだと思いました。 いやまじで。 「今からプログラミングを勉強したい!でも何を作ろうか決まってないし・・・」 みたいな人はダメージ計算ツール、めっちゃ取り組みやすい課題やもしれません。 ステータス計算だけなら10行程度で(多分効率化すればもっと少なくできる)書けてしまうので、勉強がてら色々な言語で作ってみるとか、最小文字数で作ってみるとか面白いかも。

次の