| > 乱数を吐く関数はあるが、無くても自力でテーブルを書き出せば可能。 > 微妙にランダムではないが、それは関数でも同じ事。
市民、この説明で初心者に理解を要求するのは少々酷ではないかと。
Random関数を使わない疑似ランダム選択は確かに可能です。 本来はスロットマシンなどの傾向を予測される事を前提とする手法であって、今回のように予測不可能な方が都合の良い場合には適していないのですが、一応やり方だけ挙げておきます。
*プロローグ: Global 入手アイテムパターン進行度 clearEvent exit
ランダムアイテム入手: 入手アイテム候補 = list(プロペラントタンク, ブースター, リペアキット) incr 入手アイテムパターン進行度 if アイテム入手パターン進行度 > Llength(入手アイテム候補) then 入手アイテムパターン進行度 = 1 endif item Lindex(入手アイテム候補, アイテム入手パターン進行度) return
と書き込んだ上で、アイテムを入手させたい時に
call ランダムアイテム入手 を何度も実行すると、プロペラントタンク、ブースター、リペアキットの順番で入手するアイテムが変わります(多分)。 で、"入手アイテム候補"変数をやたら長ったらしくして、同じアイテムを何度も書き込んだりしておくとランダムに近くなるという寸法です。 繰り返しますが、この手法の主眼はパターンを予測可能にする事にあって、単純なランダム選択を目的とする場合は非効率を極めます。
|