【ポケモン】MATLABでダメージ計算ツールを作成するお話

MATLABでポケモンのダメージ計算ツールを作るためのノートです。
設計メモとして適当に書いているだけなので,ちらっと見たい方はどうぞ。
多分何いってんだこいつ?で終わると思う

【完成図】
現段階での,ポケモンダメージ計算ツールのUI画面を以下に示す。
1.初期画面

2.ダメージ計算画面


【現行機能】
1. 通常フロー(1入力多出力システム)
1. AllPatern-Mode(1入力多出力システム)
 A特化ガブリアスのじしんをギルガルドがどのラインで耐久可能か,H努力値0-252の64パターン,B努力値0-252の64パターン,性格補正0.9-1.1の3パターン,計12880パターンを一度に計算し,結果を出力する。

2. 1on1-Mode(1入力1出力システム)
 A特化ガブリアスのじしんをH252ギルガルドにどれだけダメージが入るかを計算し,結果を出力する。

3. RunningTest-Mode(連続試験機能)
 A特化ガブリアスのじしんをデータベースに登録してあるサンプル全てに計算を行う。
 また,データベースに登録してあるサンプルの火力指数でB4ガブリアスがどこまで耐久できるか計算を行う

4. ParameterSpecification-Mode(パラメータ指定モード)
 1.AP-modeの機能拡張版ダメージ計算モード。Df側の性格補正,努力値のインプット情報を指定して計算を行う。

以下,コンセプト,設計メモなど

1.目的・背景・環境

1.1 目的と背景

・MATLABを学生時代の最後の最後に購入。
 持て余していたのでなにかに使えないかと半年くらい考える。
・もともとGoogleスプレッドシートでポケモンのダメージ計算ツールを自作していたことからMATLAB/Simulinkを活用したポケモンダメージ計算ツールが作成できないかと思案。
・MATLABについては研究室3年間で主に利用したが,まだ使いこなせていない機能が多々あるため,遊びと勉強の意味でダメージ計算ツールを作成する。
ポケモンUSUMからソードシールド発売まで暇だった。


1.2 環境

・MATLAB 2019a
・データベースとなるエクセルシート(ポケモン,わざ,どうぐのデータ)
 →Googleスプレッドシートにて自作したものをダウンロード

2. 基本コンセプト

・ポケモンのダメージ計算ツールとしての基本機能を実装
・1火力指数に対して,性格3パターン,H努力値64パターン,BorD努力値64パターン
 計12288パターンを一度に計算
・俗称"確1"などのラインでHBD努力値をプロットする。(横軸:H努力値,縦軸:BorD努力値)のイメージ

ツールのコンセプト

3.基本公式

ダメージ計算ツールに使用する基本式を以下に示す。
計算は処理ごとに小数点以下切り捨て
3.1 H実数値
3.2 ABCDS実数値
3.3 ダメージ計算式
3.4 火力指数計算式
3.5 防御指数計算式
3.6 ダメージ/H計算式

3.1 H実数値

①式より,H実数値を計算する。

3.2 ABCDS実数値

②式より,A実数値を計算する。
 (B,C,D,Sも同式にて計算する。)

3.3 ダメージ計算式

③式より,ダメージを計算する。
※以下補足
・K_move:わざの威力
 特性補正,もちもの補正を含める。

・K_at:攻撃側能力値
 特性補正,もちもの補正,ランク補正,やけど補正を含める。

・K_df:防御側能力値
 特性補正,もちもの補正,ランク補正を含める。

・K_b:+2前補正
 以下順番にて補正を行う。。
 1. 壁補正:リフレクター,ひかりのかべなど
 2. 複数攻撃補正:ダブルバトルなど
 3. 天候補正:はれ,あめなど
 
・K_a:+2後補正
 以下順番にて補正を行う。
 1. 珠補正:いのちのたま補正
 2. 攻撃回数補正:つららばりなどの複数攻撃の場合
 3. 急所補正:1.5倍をかける。(各実数値のランク補正も修正)
 4. タイプ一致補正
 5. タイプ相性補正
 6. 達人の帯補正
 7. 特性補正:マルチスケイル,あついしぼうなど

※補正詳細はダメージ補正リスト参照

3.4 火力指数計算式

④式より,火力指数を計算する。
一般的な火力指数計算とことなる部分があるため,補足を参照されたい。
※以下補足
・K_at:攻撃に関する補正係数をかけ合わせたもの
No.補正内容
1攻撃実数値に関わる特性補正
2攻撃実数値に関わるもちもの補正
3やけど補正
4ランク補正
5おやこあい補正
6タイプ一致
7タイプ相性
8わざ威力に関する特性補正
9わざ威力に関するもちもの補正
10急所補正
11攻撃回数補正
12天候補正
13壁補正
14複数攻撃補正
15
※エレキフィールドなどのフィールド補正は”わざ威力に関する特性補正”に含まれる
※補正詳細はダメージ補正リスト参照
※タイプ相性補正は火力指数にばらつきが出るため削除

3.5 耐久指数計算式

⑤式より,耐久指数を計算する。
一般的な耐久指数計算とことなる部分があるため,補足を参照されたい。
※以下補足
・K_df:防御に関する補正係数をかけ合わせたもの
No.補正内容
1防御実数値に関わる特性補正
2防御実数値に関わるもちもの補正
3ランク補正
4その他特性補正
5
※あついしぼう,マルチスケイルなどは”その他特性補正”に含まれる
※補正詳細はダメージ補正リスト参照
※逆数を入力(あついしぼう発動時,係数0.5 となるが,逆数を取り2を入力する)
※火力指数/耐久指数表示コードはfunc_calDmg内に記述

3.6 ダメージ/H計算式

※ダイマックスについて
ダイマックス設定ON時にHP実数値を2倍する
下記スリップAも2倍扱いとする
分母の値に加算,減算は行わない

※スリップダメージ処理
スリップダメージをA,Bに分類する
A:フィールドにポケモンを出した際に受けるダメージ(ステロ,まきびしなど)
B:ターンの終わりにポケモンが受けるダメージ(天候スリップ,状態異常など)
No.スリップダメージ構造体名分類
1ステロcal.slip.strkA
2キョダイガンジンcal.slip.kdmgA
3キョダイコウジンcal.slip.kdmkA
4まきびしcal.slip.mkbsA
5天候スリップB
6状態異常スリップB
7特性スリップ
8
9
10
【Simulinkモデル】
以下Simulinkモデルにて,スリップAを実装する。

※回復ソース処理
回復ソースをA,Bに分類する
A:毎ターン回復する回復ソース(たべのこしなど)
B:条件により発動する回復ソース(オボンのみなど)

4. 機能フローチャート

ダメージ計算ツールの機能フローチャートを以下に示す。

また,一部UIのコードを以下に示す。

【コード:UI Figureの準備】

【コード:UI プッシュボタン】

【コード:UI Hパラメーターの設定】
【コード:UI チェックボタンなど】


5. 基本機能

実装する基本機能概略を以下に示す。

No.ソースコード概要Function
1Main03ダメージ計算(func_01,func_02,simulink)Calculate
2Main03_02実数値の更新(func_01,func_02,simulink)Update
3func_00設定パラメーターの初期化Reset
拡張機能"Exchhange-Mode"を実装Exchange
MHBD-Modeに伴う変更Reset
4func_01データベースに照らし合わせ,データを取得Update
Zわざ,ダイマックスの補正を反映Update
5func_02UIの表示更新Update
6func_03Figureの自動保存FigureSave
7func_04指定した構造体配列の表示OpenData
拡張機能"NewOpenVar-Mode"を実装OpenData
MHBD-Modeに伴う変更OpenData
8func_05指定した構造体配列の表示(NOV,MHBD-Mode)OpenData
9func_06拡張機能"DamageKeeping-Mode"を実装Calculate
10func_07拡張機能"ParameterSpecification-Mode"を実装Calculate
11func_08拡張機能"RuningTest-Mode"を実装Calculate
12func_09拡張機能"HeBD-Mode"を実装Calculate
13func_10拡張機能"BoundaryCalculation-Mode"を実装OpenData
14func_11S実数値計算用コードOpenData


5.1 データの読み込み
 5.1.1 データベース
 5.1.2 設定値
5.2 Simulink モデルの作成
5.3 データ配列( 入力と出力)
5.4 配列のデータ処理
 5.4.1 データのソート
 5.4.2 ダメージライン処理
 5.4.3 データの配列長さ,最大値,最小値の計算
5.5 Plot切り替え機能
5.6 Axis自動調整機能
5.7 特別なデータ処理
5.8 S実数値計算処理

5.1 データの読み込み

5.1.1 データベース

下記表に示すデータベースをUI起動時に読み込む。
配列名格納データ
db00.chara性格表
db00.typeタイプ相性表
db00.crt急所-6:1:6
db00.weather天気
db00.stetus状態異常
db00.stetus2状態異常2(こんらん,スロースタート,みがわり)
db00.wall壁補正(シングル,ダブル,トリプル,バトルロワイヤル)
db00.fieldフィールド補正
db00.double複数攻撃補正(ダブル,トリプル,バトルロワイヤル)
db00.numattack攻撃回数1:1:5
db00.damageダメージライン処理にて使用
db00.x16x16-Modeで使用
配列名格納データ
db01.poke.nameポケモン名,タイプ1,タイプ2
db01.poke.para種族値
db01.poke.tokusei特性
db01.poke.hw高さ,重さ,けたぐり威力
db01.poke.ruleタイプ相性
db01.move.nameわざ,タイプ,分類
db01.move.para威力,命中,PP
db01.move.znameZわざ
db01.move.zparaZわざのパラメータ
db01.move.detail威力,命中,PP
db01.move.crct補正(てつのこぶし,はどうなど)
db01.bring.nameどうぐの名前

5.1.2 設定値

UI起動後,各パラメータを設定する。
ダメージ補正リスト参照

5.2 Simulinkモデルの作成

式①-⑤を実装するSimulinkモデルを作成する。

No.simulinkモデル機能
1Model_04ダメージ計算
→AllParameter-Mode
→1on1-Mode
→RunningTest-Mode
→ParameteSpecification-Mode
2Model_04_beta実数値計算
3Model_04_gamma拡張機能"HeBD-Mode"計算用モデル
Simulinkの概略は下図に示す。

火力指数計算部分


5.3 データ配列(入力と出力)

入力するデータ配列

一般的なfor文を用いることで性格補正3パターン,H努力値64パターン,BD努力値64パターンの計12288パターンのデータ配列を生成し,サンプル時間ごとに各値を入力する。
i:性格補正j:H努力値k:BD努力値
0.900
1.04ごと増加4ごと増加
1.1252252
3パターン64パターン64パターン

【コード:入力配列】


出力するデータ配列

simulinkモデルで③式の数値計算後,1.00-0.85の16パターンの乱数処理を行い,データを取得する。取得するデータ配列には列ごとに以下のデータを格納する。
このとき配列は12288行まであり,4096行ごとに性格補正が異なる。
列番号格納データ呼称
1データ番号-
2ダメージ/H実数値(乱数1.00)dmg(1.00)
3ダメージ/H実数値(乱数0.99)dmg(0.99)
4ダメージ/H実数値(乱数0.98)dmg(0.98)
5ダメージ/H実数値(乱数0.97)dmg(0.97)
6ダメージ/H実数値(乱数0.96)dmg(0.96)
7ダメージ/H実数値(乱数0.95)dmg(0.95)
8ダメージ/H実数値(乱数0.94)dmg(0.94)
9ダメージ/H実数値(乱数0.93)dmg(0.93)
10ダメージ/H実数値(乱数0.92)dmg(0.92)
11ダメージ/H実数値(乱数0.91)dmg(0.91)
12ダメージ/H実数値(乱数0.90)dmg(0.90)
13ダメージ/H実数値(乱数0.89)dmg(0.89)
14ダメージ/H実数値(乱数0.88)dmg(0.88)
15ダメージ/H実数値(乱数0.87)dmg(0.87)
16ダメージ/H実数値(乱数0.86)dmg(0.86)
17ダメージ/H実数値(乱数0.85)dmg(0.85)
18性格補正-
19H努力値-
20BD努力値-
21H努力値+BD努力値-
22H実数値-
23B実数値-
24防御指数耐久指数-
25火力指数-
26x/16(simulinkで0を入力)-
27ダメージ(乱数1.00)-
28ダメージ(乱数0.99)-
29ダメージ(乱数0.98)-
30ダメージ(乱数0.97)-
31ダメージ(乱数0.96)-
32ダメージ(乱数0.95)-
33ダメージ(乱数0.94)-
34ダメージ(乱数0.93)-
35ダメージ(乱数0.92)-
36ダメージ(乱数0.91)-
37ダメージ(乱数0.90)-
38ダメージ(乱数0.89)-
39ダメージ(乱数0.88)-
40ダメージ(乱数0.87)-
41ダメージ(乱数0.86)-
42ダメージ(乱数0.85)-

格納するデータ配列は以下の図のようになる。


【変更点】
2-17列目:ダメージをH実数値で割った値
26-42列目:ダメージの自体の値(追加)

5.4 配列のデータ処理

simulinkより得たデータ配列に対して処理を行う。データ処理ごとの配列名は以下表の用に定義する。
No.構造体名詳細
1damage.dmg09Simulinkから得たデータ配列
damage.dmg10
damage.dmg11
2damage.dmg09_2sort処理,ダメージライン処理を行ったデータ配列
damage.dmg10_2
damage.dmg11_2
3damage.dmg09_31行目にラベルを結合したOpenData用配列
damage.dmg10_3
damage.dmg11_3
4damage.dmg09_4拡張機能"NewOpenVar-Mode"で処理したデータ配列
damage.dmg10_4
damage.dmg11_4
5damage.dmg09_5拡張機能"NewOpenVar-Mode"で処理したデータ配列
damage.dmg10_51行目にラベルを結合したOpenData用配列
damage.dmg11_5

5.4.1 データのソート

以下手順にてデータ処理を行い,ダメージの大きい順,かつ,振り分け努力値合計の少ない順に性格補正ごとのデータ配列を生成する。
手順処理内容
1ダメージ配列を性格補正ごとに分類
2BorD実数値で各データ配列を降順
3H実数値で各データ配列を降順
4H努力値+BD努力値の合計値で各データ配列を昇順
5damage(1.00)のダメージ配列で降順
【コード:データのソート】


5.4.2 ダメージライン処理

各データに対し,条件ごとに各表の処理を行う。
No.条件条件式分類x16-Mode
1確1dmg(0.85) >= 1.00At-
2乱1dmg(1.00) >= 1.00At1.00
3確4耐えdmg(1.00) < 0.25Df-
4乱4耐えdmg(0.85) < 0.25Df0.25
5確2dmg(0.85) >= 0.50At-
6乱2dmg(1.00) >= 0.50At0.50
7確3耐えdmg(1.00) < 0.33Df-
8乱3耐えdmg(0.85) < 0.33Df0.33
9確3dmg(0.85) >= 0.33At-
10乱3dmg(1.00) >= 0.33At0.33
11確2耐えdmg(1.00) < 0.50Df-
12乱2耐えdmg(0.85) < 0.50Df0.50
13確4dmg(0.85) >= 0.25At-
14乱4dmg(1.00) >= 0.25At0.25
15確1耐えdmg(1.00) < 1.00Df-
16乱1耐えdmg(0.85) < 1.00Df1.00
else
※DamageLineDecision-Modeをこの処理と組み合わせる予定
【変更点】
→組み合わせることにより,表示更新時に不具合発生。
・確1の条件と乱数の条件を分離
【コード:ダメージライン処理】


5.4.3 データ配列の長さ,最大値,最小値の計算

 各データの配列の長さ,最大値,最小値を計算する。
※重複処理:H実数値,BD実数値の組み合わせに重複がないようにデータ処理を施す。
No.配列名詳細ダメージ
ライン
処理
重複処理
1dmglength09_be性格補正0.9のデータ配列長さ→全データ,分母なしあり
2dmglength10_be性格補正1.0のデータ配列長さ→全データ,分母なしあり
3dmglength11_be性格補正1.1のデータ配列長さ→全データ,分母なしあり
4dmglength09性格補正0.9のデータ配列長さ→switch文判定用ありなし
5dmglength09性格補正1.0のデータ配列長さ→switch文判定用ありなし
6dmglength09性格補正1.1のデータ配列長さ→switch文判定用ありなし
7dmglength09_af性格補正0.9のデータ配列長さ→全データ,分子ありあり
8dmglength10_af性格補正1.0のデータ配列長さ→全データ,分子ありあり
9dmglength11_af性格補正1.1のデータ配列長さ→全データ,分子ありあり
10maxH10H実数値最大値--
11maxBD09BD実数値最大値(性格補正0.9)--
12maxBD10BD実数値最大値(性格補正1.0)--
13maxBD11BD実数値最大値(性格補正1.1)--
14minH10H実数値最小値--
15minBD09BD実数値最小値(性格補正0.9)--
16minBD10BD実数値最小値(性格補正1.0)--
17minBD11BD実数値最小値(性格補正1.1)--

5.5 Plot切り替え機能

①性格補正ごとのデータ表示を可能にするため,UIにポップアップボタンを設置
②各ボタンには性格ごとのデータを表示・非表示にするコールバックを設定
③データ数に応じて表示するデータを選択する。
switchデータ数表示内容
dmglength09
4096"All Data" dmglength09_be (Blue)
0"No Data" (Blue)
otherwise"All Data" dmglength09_af / dmglength09_be (Blue)
dmglength10
4096"All Data" dmglength10_be (Black)
0"No Data" (Black)
otherwise"All Data" dmglength10_af / dmglength10_be (Black)
dmglength11
4096"All Data" dmglength11_be (Red)
0"No Data" (Red)
otherwise"All Data" dmglength11_af / dmglength11_be (Red)
※Plotの消去部分
→Main_03
→Main_03
→func_00
→func_02
→func_pltAxi

5.6 Axis自動調整機能

表示するデータパターンに応じて,X軸の最小値,最大値を変更する。
 パターンごとの最小値,最大値は次の表に示す。
性格補正
性格補正0.9の
Plot09

性格補正1.0の
Plot10

性格補正1.1の
Plot11
x軸 : BD実数値
0.91.01.1最小値最大値
111minBD09maxBD11
101minBD09maxBD11
100minBD09maxBD09
010minBD10maxBD10
001minBD11maxBD11
110minBD09maxBD10
011minBD10maxBD11
000minBD10maxBD10
Plot構文を改良【変更点】
before
上表のパターンごとにプロットを変更
→2進数×3の8パターンなら処理できるが,パターン数が増えるとコードが長くなる

after
plot構文に''DisplayName'を追加
x軸はxlim autoで代用

BC-Mode追加に伴う変更
UIで指定しするHBD努力値,性格補正による実数値を別色でプロットに反映する。
→防御側ポケモンの物理特殊判定に依存する。
下図より,UIに反映される実数値がプロット画面にも反映されていることがわかる。(オレンジ点)

【追加コード】


5.7 特別なデータ処理

Zわざ,ダイマックス発動時のわざの威力,追加効果などを補正する。
各補正を行う際のフラグを下記に示す。
No.補正項目詳細フラグ
1特性発動At一定の条件のみ発動する特性のON/OFF(もうかなど)para.toku_at
2特性発動Df一定の条件のみ発動する特性のON/OFFpara.toku_df
3ZわざZわざ発動フラグpara.zmove
4ダイマックスAt攻撃側のダイマックス発動フラグ(HP2倍,わざ補正)para.dm_at
5ダイマックスDf防御側のダイマックス発動フラグ(HP2倍)para.dm_df
6
7
8
9
10

※ポケモンのタイプ変更について
以下フラグを取得する(変更時に1を立てる)
Opr.n.type_c_at1 = 0
Opr.n.type_c_at2 = 0
Opr.n.type_c_df1 = 0
Opr.n.type_c_df2 = 0
パラメータのUpdate時にフラグをOFFにする。

5.8 S実数値計算処理

努力値配分時にすべてのポケモンのS実数値を毎度計算して確認するのは面倒である。
そこでUI立ち上げ時に種族値パターンを入力し,最速,準速などの表を作成する。

当機能実装により得られる表は次のようになる。
プッシュボタンにより常時,この配列を呼び出すことが可能である。
→配列を出すよりも図で出したほうがわかりやすいか検証

Figureに横軸種族値,縦軸実数値としてプロットした場合。

Simulinkモデルは新たに"Model_04_delta"を,コードは"func_11"を新設する。
Simulinkモデルを通し,以下データを配列に格納する。

No.格納配列
1最速
2準速
3無振り
4最遅
5スカーフ最速
6スカーフ準速
7
8
9
10

作成するSimulinkモデルは以下となる。
【コード:func_11】

追加コード:plot用

【改良メモ】
・表よりも図としてアウトプットしたほうが面白そう

6. 拡張機能

ノートが長くなるため別記事に詳細をまとめる
【ポケモンMATLABダメ計】拡張機能リスト

基本機能に追加する各拡張機能について記述する。
6.1 x16-Mode
6.2 x16MaxDisp-mode
6.3 DamageLineDecision-Mode(DLD-Mode)
6.4 x16Change-Mode
6.5 Exchange-Mode
6.6 NewOpenVar-Mode(NOV-Mode)
6.7 MovePowerChange-Mode(MPC-Mode)
6.8 MaximumHBD-Mode(MHBD-Mode)
6.9 1on1-Mode
6.10 RunningTest-Mode(RT-Mode)
6.11 DamageKeeping-Mode(DK-Mode)
6.12 BoundaryCalculate-Mode(BC-Mode)

また,各モードの突入可否を下表にまとめる。

7. ダメージ補正の概要

ノートが長くなるため別記事に詳細をまとめる
【ポケモンMATLABダメ計】ダメージ補正リスト

ダメージ計算ツールに実装した各補正と簡潔な詳細を示す。
7.1 特性補正
7.2 もちもの補正
7.3 その他補正
7.4 スリップダメージ
7.5 わざ補正

8. あとがき

本記事は随時更新予定です。
なにかあればコメントまで

【関連記事】

9. 課題リスト

Openver
・わざダメージ変更
・火力指数,防御指数の計算
・DamageLine自動算出
・攻守交代
・特性,もちものなどの倍率補正を実装
→マルチスケイル,ファントムガード初撃のみ対応
 →DK-Modeと併用すれば一応計算可能
・DamageLineDecision-Modeとダメージライン処理の合体
・確2or乱1という表記だとダメージラインが分かりづらいため変更検討
・func00にデータベースの更新を含める
・ダメージ/Hの基本式を設定。
トグルボタン
1−1計算システム拡張機能1on1(モード変更)→精密計算システム
→Zわざ発動,きのみ,一部特性発動条件
ダメージ保留機能→次のダメ計と累計して計算可能なモード
・RankをA-Sそれぞれ決定できる改良(めんどくさいやつ)
・特定の実数値入力で対象の配列のみ表示する機能→拡張機能pullout
Zわざ,キョダイマックスわさについて追記
・ダイマックスのさわダメージ補正(ダイマックス時に補正のかかる特性も判別)
・Zわざのダメージ補正
・状態2のUI更新
・指定努力値版通常フロー
→先に努力値を割り振るところに割り振っておく(SとかHとか)
→残り努力値を使用した通常フローを行い,ダメージラインを計算する。
・特定に実数値を実現する努力値を算出する機能
・プッシュボタンで一部情報を引き出せる機能
・設計中の努力値をメモできる機能

10. 参考資料

ダメージ計算式
No.更新日時UpdateIndex
12019.11.09本記事公開
22019.11.10火力指数に関する内容を追記3.4(New)
耐久指数に関する内容を追記3.5(New)
Simulinkモデルに関する内容を追記5.2(New)
配列格納データを変更5.3
ダメージラインとDLD-Modeの組み合わせに不具合あり5.4.2
ダメージラインの条件を変更(確定と乱数を分離)
x16-Modeに関する内容を修正6.1
x16MaxDisp-Modeに関する内容を修正6.2
DamageLineDecision-Modeに関する内容を修正6.3
32019.11.13Exchange-Mode追加に伴う変更5
5.1節を細分化5.1.1
5.1.2
拡張機能"Exchange-Mode"追加6.5(New)
実装済みの補正を追記7(New)
42019.12.15NewOpenVar-Mode追加に伴う変更5
MHBD-Mode追加に伴うRESET機能の変更5
データ配列の詳細を追記5.4
拡張機能"NewOpenVar-Mode"追加6.6(New)
拡張機能"MovePowerChange-Mode"追加6.7(New)
拡張機能"MaximumHBD-Mode"追加6.8(New)
Rankの設定をA-Sで別々で設定可能に変更その他
52020.01.11一部コード公開-
性格補正ごとに表示する数字の色を変更-
火力指数計算式について一部修正3.4
耐久指数計算式について追記3.5
ダメージ割合に関する計算式を追加3.6(New)
スリップダメージ,回復ソースについて追記3.6(New)
plot構文を改良5.6
Zわざ,ダイマックスを考慮したわざ補正5.7(New)
拡張モード内容を別記事に移動6
ダメージ補正内容を別記事に移動7


コメント

  1. MATLABでポケモンツールとは,すごくおもしろいです.私も長年,作りたいなと思っていました.ぜひ,ソースコードなどをみせていただけるとありがたいなと思いました.

    返信削除
    返信
    1. コメントありがとうございます。
      まだ実装するべき機能がたくさんあるので,ソースコードはまだ公開しづらいとこがあるのが,正直なところです。
      本記事の4章や6章のフローチャート通りにソース書いているくらいしかまだ言えないです笑

      削除

コメントを投稿

このブログの人気の投稿

【ポケモンGO】愛知県名古屋市・鶴舞公園の歩き方

【ポケモンGO】種族値,実数値,CPを計算してみた話(おまけで全ポケモン種族値リスト)

【ポケモンMATLABダメ計】ダメージ補正リスト

【ポケモンBDSP】固定シンボル色違い自動厳選プログラムのデバッグ