コメントレス

">通りすがりプログラマさん"
>2391
HABSCDの順に直して確認していたので間違ってしまったようです。
>どんどん大きくなる
32ビット環境でコンパイルすればはみ出た部分は捨てられるので大丈夫、と思って書いたわけですが、
64ビット環境だと遺伝個所がずれてしまいますね。
アーマーさんのところを参考に手直ししてみました。
tamago.c
>11425
あれ?なんだこれ。
計算し直したら全然違いますね。。。
自分でもなんでこんな数字がでたか分からないです。
64ビット環境でも個体値は正しい値になるはずなんだけどなあ。
>読みやすいコード
済みません。精進します。。。

前後賞

あるフレームのHABはその直前のSCDなわけで、
いい個体が生まれるフレームの前後もなかなかいい個体になるわけですよ。
具体的に944'前後を見てみると、

  • 941(F)a 13-AA-27-AA-23-BB
  • 941(F)b 13-BB-27-31-BB-AA
  • 942(F)a 31-BB-23-31-BB-AA
  • 942(F)b 31-AA-23-BB-BB-19
  • 943(F)a 02-AA-07-BB-BB-19
  • 943(F)b BB-31-AA-30-30-BB
  • 944(F)a BB-19-AA-30-30-BB
  • 944(F)b AA-19-05-BB-12-AA
  • 945(F)a AA-30-30-BB-12-AA
  • 945(F)b 03-AA-AA-29-BB-28

5U以上の候補が4つも。

というわけで有用そうなフレーム。

  • 944(F) BB-31-AA-30-30-BB 2刀、めざ地
  • 1251(F) BB-15-30-31-AA-AA 特殊、めざ氷
  • 1668(F) 30-AA-10-AA-31-BB 2刀、めざ氷
  • 1813(F) 31-17-BB-BB-31-AA 特殊、めざ草

※すべてHABとSCDの乱数の間が空くパターン

タマゴの個体値の決まり方

これまでの調査で判明したので記しておきます。

  • 1つ目の乱数からHP攻撃防御が決定。
  • (ここで乱数が1つ飛ばされる場合がある。)
  • 2つ目の乱数から素早さ特攻特防が決定。
  • ここで1つ乱数が飛ばされる
  • 4つめの乱数から、1つ目の遺伝箇所が6つのステータスのうちから決定。
  • 5つめの乱数から、2つ目の遺伝箇所がHPを除く5つから決定。
  • 6つめの乱数から、3つ目の遺伝箇所がHPと防御を除く4つから決定。
  • 7つめの乱数から、1つ目の遺伝箇所について両親どちらから遺伝するかが決定。
  • 8つめの乱数から、2つ目の遺伝箇所について両親どちらから遺伝するかが決定。
  • 9つめの乱数から、3つ目の遺伝箇所について両親どちらから遺伝するかが決定。

遺伝については鮎雑句07年7月13日の記事も参照。
とりあえず、昨日生まれた
2391(F) 31-04-31-AA-AA-BB
は、これに当てはまる。

プログラム自作してみました。
tamago.c

0から5までの乱数

乱数を返す関数rand()を使って、0から5のうちから一つランダムで選びたい。

  • 方法1:rand()を6で割った余りを取る。rand()%6
  • 方法2:rand()を6倍してrand()が返す最大値+1で割る。rand()*6/0x10000
  • 方法3:0〜5の間の数が出るまでrand()を繰り返す。

エメラルドの遺伝箇所決定アルゴリズムは方法1、2ではなさそう。
ということは方法3に近い手段を使っている?

刻め!6ビート!

目指す2391フレームが出ない・・・
2391/60≒39+5/6秒。
5/6ってことは3拍子の裏拍を叩けばいいんだな。
これを意識して30個孵化して対応するフレームを調べたら、平均2392。
・・・なのになぜ2391は出ない?