裏CHUNSOFT > ROMイメージ改造・解析 > 道具の値の決定

道具の値の決定

矢・杖・壺の値の決定

矢・杖・壺の値(すなわち本数・回数・大きさ)は、以下の範囲の整数をとります。

道具の種類毎に最大値と最小値を決める表があるのですが、なぜか杖の中で封印の杖だけが最大値が8になっていました。 どのような意図を持ってしたのかは分かりませんが、これは仕様です。

具体的な処理は、その道具の値がとり得る最小値をm、最大値をMとすると、

  1. "A"=M-m+1
  2. $00=(0〜255の乱数)
  3. $01="A"
  4. $00*=$01(上位8バイトは$01に格納)
  5. "A"=m
  6. "A"+=$01
  7. $00="A"

ということで、1つの式にまとめると、$00=m+(M-m+1)*(0〜255)/256となります。 ひねりなしですね。

武器・盾の修正値の決定

武器・盾の修正値は、乱数が00h〜AFhの時に0、B0〜CFhの時に+1、D0〜DFhの時に+2、E0〜EFhの時に+3、F0〜FFhの時に-1(呪われている)、となります。 従って、修正値xになる確率をP(x)とすると、P(0):P(+1):P(+2):P(+3):P(-1)=11:2:1:1:1ということになります。

これを調べている途中、昔どこかの掲示板で「修正値が付いた1ツ目殺しを見たことがない」という話題があったのを思い出しました。 これは調べなければ、と思って調べてみるとやはりその通りでした。 以下の武器は上記の例外で、修正値を持った状態で手に入ることはありません。

恐らく、こちらは仕様ではなく設定ミスです。 その根拠は、少し長くなるのでここでは説明しませんが。

腕輪が呪われているかどうかの決定

乱数が00h〜BFhの時に呪われていない、C0〜FFhの時に呪われている、となります。 従って、腕輪が呪われている確率は1/4です。 やはり腕輪は武器・盾よりも呪われている確率が高かったですね。

因みに呪いよけの腕輪はきちんと例外処理されていて、呪われた状態で手に入ることはありません。

ギタンの金額の決定

ダンジョンに落ちているギタンの金額は、乱数を8回連続で発生させてその和をとり、それを8で割ります(切り捨て)。 それに1000を乗じて256で割った(切り捨て)値がギタンの金額となります。 従って、ギタンの金額の分布は矢の本数のように一様分布ではありません。 500ギタンが最も出やすく、そこから離れる程出にくくなります。

ギタンの金額は256段階なので、0〜999の全ての値をとるのではなく、以下の値しかとらないことになります。 実際は乱数生成アルゴリズムの性質上、先頭や末尾に近い値は出ません。

  0,  3,  7, 11, 15, 19, 23, 27, 31, 35, 39, 42, 46, 50, 54, 58,
 62, 66, 70, 74, 78, 82, 85, 89, 93, 97,101,105,109,113,117,121,
125,128,132,136,140,144,148,152,156,160,164,167,171,175,179,183,
187,191,195,199,203,207,210,214,218,222,226,230,234,238,242,246,
250,253,257,261,265,269,273,277,281,285,289,292,296,300,304,308,
312,316,320,324,328,332,335,339,343,347,351,355,359,363,367,371,
375,378,382,386,390,394,398,402,406,410,414,417,421,425,429,433,
437,441,445,449,453,457,460,464,468,472,476,480,484,488,492,496,
500,503,507,511,515,519,523,527,531,535,539,542,546,550,554,558,
562,566,570,574,578,582,585,589,593,597,601,605,609,613,617,621,
625,628,632,636,640,644,648,652,656,660,664,667,671,675,679,683,
687,691,695,699,703,707,710,714,718,722,726,730,734,738,742,746,
750,753,757,761,765,769,773,777,781,785,789,792,796,800,804,808,
812,816,820,824,828,832,835,839,843,847,851,855,859,863,867,871,
875,878,882,886,890,894,898,902,906,910,914,917,921,925,929,933,
937,941,945,949,953,957,960,964,968,972,976,980,984,988,992,996

以下の表は、同じアルゴリズムで2097152回ギタンの金額を生成して、各々の値が出た回数です。 参考にして下さい。

    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    1,    0,    0,
    0,    0,    0,    3,    2,    1,    2,    4,    1,    5,    9,   15,    9,   17,   21,   29,
   25,   21,   30,   41,   39,   78,   76,  105,  113,  123,  131,  136,  166,  198,  239,  237,
  286,  340,  389,  445,  450,  539,  590,  683,  733,  874,  966, 1047, 1191, 1302, 1495, 1613,
 1827, 1920, 2063, 2339, 2573, 2872, 2992, 3300, 3571, 4052, 4199, 4567, 4948, 5278, 5876, 6141,
 6661, 6994, 7621, 7946, 8511, 9095, 9525,10367,10715,11332,11976,12686,13203,13830,14491,15455,
16180,16678,17410,17937,18597,19459,20195,21160,21459,22294,22850,23668,24192,25059,25602,25913,
26756,27324,27708,28363,28700,29085,29486,29841,30239,30427,30931,30816,31299,31373,31167,31383,
31604,31289,31402,31026,31251,30955,30726,29695,29892,29630,29233,28728,28146,27761,27076,26542,
26354,25375,24547,24182,23443,23025,21968,21493,21094,19975,19408,18585,17752,16982,16617,15789,
14975,14299,13471,13036,12224,11796,11054,10363, 9707, 9139, 8606, 8065, 7717, 6912, 6545, 6259,
 5717, 5324, 4928, 4527, 4226, 3854, 3586, 3300, 3052, 2738, 2447, 2208, 2108, 1895, 1577, 1536,
 1365, 1223, 1037,  971,  882,  761,  622,  596,  511,  442,  380,  358,  319,  270,  202,  192,
  179,  126,  132,  101,   81,   72,   63,   44,   46,   28,   25,   21,   17,   12,    5,    7,
    4,    8,    8,    3,    1,    1,    1,    1,    0,    2,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0

2009年2月25日更新

裏CHUNSOFT > ROMイメージ改造・解析 > 道具の値の決定