バトルファクトリーの最初の6匹を解析してみる その5

データを集めているとき、相手の3匹が6匹の性格値より後の乱数列に見つからないことがあった。
初期seed: 0xfe0001f6
6匹: アノプス,オムナイト,ユキカブリ,ウソハチ,ビブラーバ,グレッグル
3匹: ワンリキー,デルビル,ポリゴン
ファクトリーID: ワンリキー=43,デルビル=72,ポリゴン=134
乱数列から手で相手の3匹を探してみると

 216: 0xc4b5900e  43 50357
 217: 0x0c06fa69  72 03078
 218: 0x957afd28 134 38266

だが、6匹の性格値は283までの乱数を使っているはずなのだ。

24: 0xa15f114e 150 - 0xa15f % 150 = 89 ビブラーバ
25: 0xdd1482a9 150 - 0xdd14 % 150 = 104 アノプス
26: 0x59418068 150 - 0x5941 % 150 = 101 オムナイト
27: 0xae73bcbb 150 - 0xae73 % 150 = 41 グレッグル
28: 0xfe6ab612 150 - 0xfe6a % 150 = 120 バタフリー (アイテム重複のため無視)
29: 0x3ad5621d 150 - 0x3ad5 % 150 = 89 ビブラーバ (重複のため無視)
30: 0x502dfccc 150 - 0x502d % 150 = 25 ウソハチ
31: 0x78632b4f 150 - 0x7863 % 150 = 81 ユキカブリ

ビブラーバ
 親ID: 01925
  32: 0x0785e316
 性格値: 0xf0ef7fea
  80: 0x7fea72c6
  81: 0xf0ef92c1
 性格: ひかえめ
 特性: ふゆう
 性別: ♂
アノプス
 親ID: 05886
  82: 0x16feaaa0
 性格値: 0x0529bda3
  126: 0xbda3b92c
  127: 0x0529a02f
 性格: いじっぱり
 特性: カブトアーマー
 性別: ♂
オムナイト
 親ID: 46305
  128: 0xb4e1e676
 性格値: 0x88204a6c
  164: 0x4a6cc8da
  165: 0x88205145
 性格: ずぶとい
 特性: すいすい
 性別: ♂
グレッグル
 親ID: 12004
  166: 0x2ee400d4
 性格値: 0x2e368807
  182: 0x880702e4
  183: 0x2e361387
 性格: いじっぱり
 特性: かんそうはだ
 性別: ♀
ウソハチ
 親ID: 34915
  184: 0x8863d2ee
 性格値: 0x731c6d97
  212: 0x6d97038a
  213: 0x731cee35
 性格: いじっぱり
 特性: いしあたま
 性別: ♂
ユキカブリ
 親ID: 34275
  214: 0x85e3f304
 性格値: 0x951131d5
  282: 0x31d55168
  283: 0x9511b9bb
 性格: いじっぱり
 特性: ゆきふらし
 性別: ♂

うーん、性格値決定のアルゴリズムが間違っているのか?6匹の親IDが一致するか調べておけばよかったけど調べずに戦ってしまった。
今後同じことが起こったらIDの一致を調べよう。



と思ったら簡単なことだった。
6匹の種類の決定が上に書いた24から始まる乱数列を使っているのではなく、実際には25から始まる乱数列を使っているようだ。

25: 0xdd1482a9 150 - 0xdd14 % 150 = 104 アノプス
26: 0x59418068 150 - 0x5941 % 150 = 101 オムナイト
27: 0xae73bcbb 150 - 0xae73 % 150 = 41 グレッグル
28: 0xfe6ab612 150 - 0xfe6a % 150 = 120 バタフリー (アイテム重複のため無視)
29: 0x3ad5621d 150 - 0x3ad5 % 150 = 89 ビブラーバ
30: 0x502dfccc 150 - 0x502d % 150 = 25 ウソハチ
31: 0x78632b4f 150 - 0x7863 % 150 = 81 ユキカブリ

アノプス
 親ID: 01925
  32: 0x0785e316
 性格値: 0x7118662c
  76: 0x662caac2
  77: 0x7118310d
 性格: いじっぱり
 特性: カブトアーマー
 性別: ♂
オムナイト
 親ID: 49997
  78: 0xc34d38fc
 性格値: 0x4a75e474
  116: 0xe474b22a
  117: 0x4a750855
 性格: ずぶとい
 特性: すいすい
 性別: ♂
グレッグル
 親ID: 25372
  118: 0x631cd2a4
 性格値: 0x0529bda3
  126: 0xbda3b92c
  127: 0x0529a02f
 性格: いじっぱり
 特性: かんそうはだ
 性別: ♂
ビブラーバ
 親ID: 46305
  128: 0xb4e1e676
 性格値: 0x0e626d09
  172: 0x6d098022
  173: 0x0e624aed
 性格: ひかえめ
 特性: ふゆう
 性別: ♀
ウソハチ
 親ID: 13052
  174: 0x32fc7d5c
 性格値: 0x2e368807
  182: 0x880702e4
  183: 0x2e361387
 性格: いじっぱり
 特性: いしあたま
 性別: ♀
ユキカブリ
 親ID: 34915
  184: 0x8863d2ee
 性格値: 0x731c6d97
  212: 0x6d97038a
  213: 0x731cee35
 性格: いじっぱり
 特性: ゆきふらし
 性別: ♂

相手の3匹

216: 0xc4b5900e 150 - 0xc4b5 % 150 = 43 ワンリキー
217: 0x0c06fa69 150 - 0x0c06 % 150 = 72 デルビル
218: 0x957afd28 150 - 0x957a % 150 = 134 ポリゴン

ワンリキー
 親ID: 04976
  219: 0x13705a7b
 性格値: 0xe4ec57a2
  237: 0x57a26c2d
  238: 0xe4ec259c
 性格: いじっぱり
 特性: こんじょう
 性別: ♂
デルビル
 親ID: 07849
  239: 0x1ea9ebdf
 性格値: 0x3abbf5df
  245: 0xf5dfdad5
  246: 0x3abb7324
 性格: いじっぱり
 特性: もらいび
 性別: ♂
ポリゴン
 親ID: 20669
  247: 0x50bd5ec7
 性格値: 0xc5653e37
  253: 0x3e37767d
  254: 0xc565e9ac
 性格: ひかえめ
 特性: ダウンロード
 性別: 不明



ツールに6匹の組み合わせが出る候補が複数ある場合の処理を追加した。うーむ、ついついツールいじりに夢中になってしまう。

筆者: oupo (連絡先: oupo.nejiki@gmail.com)