今更の4thバトルフロンティア。
バトルタワーとバトルファクトリーについてはあるけど他見ないなぁと思って調べてみた。
調べるのに使ったROMはSS。
細かい仕様は確認してないので大雑把に。

動画作りました。
http://blog.livedoor.jp/x_x_saki_x_x/archives/55574221.html


●仕組み
各対戦ごとにタイプ選択後、トレーナー→ポケモンの順に決まる模様。
乱数は通常のLCGを使っているよう。

・トレーナー
トレーナーの肩書きを乱数1つで決めた後そのトレーナーの名前を乱数1つ決めているっぽい。
肩書きはタイプやランクによって変わっていそうだけどどこかにデータか何かないのかしら。
トレーナーの名前はmod 300した値を用い、バトルタワーと同じ表で該当するまで+1をする感じに見えた。
これ明らかに偏るよね。
ケイトの時は乱数1つのみ消費される。
重複時の処理は確認してない。

・ポケモン
こちらもタイプを無視し、該当する合計種族値のポケモンを乱数1つ用いてmod nで決めた後、タイプ条件を満たすまで+1を繰り返している模様。
これも偏るとかひどくね?
この決め方の通り相手トレーナーのポケモンはトレーナー依存ではない模様。
重複時は+1継続。
重複等により条件を満たすポケモンがいない場合は一時的に重複判定を切ってるっぽい。
その後乱数2つ消費(バトルファクトリーの記述見る限り表裏IDかしら)した後、該当する性格になるよう恒例の性格値決定。
性格は予めポケモンごとに決まっている。
色違いの場合は再決定?
その後乱数4つ消費、何に使っているかは不明。

重複時の+1だが、mod (該当する合計種族値のポケモンの数-1)で計算されているようで、範囲内最大のIndexは最初からそのものの値でない限り選ばれないというバグ仕様があるよう。
これが原因の1つであると思われる、特定条件下で処理が無限ループに入り操作が利かなくなるバグが存在する。
バグの詳しい(?)説明について纏めた記事はこちら


ということでトレーナー無視して1周分の出されるポケモンの予測を行って実際に出来たわけだが、相手ポケモンの性別が予想と違ったりしたので手元の処理含めどこかがおかしい。
ただポケモンの種類の予測はできたので、消費数とか大まかな部分は合ってそう。

特性、色違いに対する処理、相手がケイトの時の処理は確認してない。


レベル決定方法とかは調べてません。
一応、Lv100の時の場合は調べれば出てくるかと。
そのうちLv100以外の場合も調べてみたいが、さて。


~余談~
建物内の動くNPCは参加ポケモンを選ぶ所で乱数消費することにより影響の排除が可能。

タイプ選択時にステータスを見ることができ、ペラップ選択時には任意の乱数消費ができる。
つまり、中断せずに各対戦前に相手ポケモンを任意に調整できるのはペラップだけ!

日替わり乱数を使ってるバトルタワーはともかく、通常乱数を使ってるバトルファクトリーとかは必勝法探すの面白そうだなーと。
そのうちやってみる、かは知らない。


あ、後日これ使ってアンノーンで170連勝しました。