この乱数って・・・(質問掲示板

投稿: User icon mini 退会したユーザー 投稿:2012/02/19 22:08:19(最新:2012/02/19 23:11:19)
a = rand(90)
if  a = 90

elsif  a = 89


疑問なのですが、ランダムエンカウントじゃ、経験値などを決められないので、乱数で、マップ全体に、戦闘をできるようにしたいんですが、
そのマップに3種類の敵が出てくるとして、9通りの戦闘組み合わせを考えたのですが、上から9つのところに、その関数を上のスクリプトを、その後も作って入れるとすると、空欄が、大量にできますよね。無理やり10%の戦闘開始率を作ろうとしたのですが、このまま作っていってエラったりしないですかね?
それとも
マップのどこでも、10%の確率で戦闘が開始するようにしたく、経験値、お金もモンスターごとに計算して、決めたいのですが、何か他にいい方法はありますか?
お願いします。

コメントする

コメントするには、ログインする必要があります。

コメント一覧

User icon mini 退会したユーザー(投稿日:2012/02/19 23:11, 履歴)
すごいです!
気の遠い乱数になるのかな…と思ったら、こんなに簡略化できたんですか。
aoihikawa様、ありがとうございました。
Cdv30200 aoi icon mini aoihikawa(投稿日:2012/02/19 22:27, 履歴)
エラーが発生します。

条件式のイコール判定は「==」です
「=」は変数の代入に使用します。


さて、本題ですが

最大が100とすると10%は10/100ですね。
これをスクリプトに書き起こすと
sento = rand(100) #0~99の100通りを生成

if sento < 10
  #sentoが0~9の場合、つまり10/100
  #--- 戦闘スクリプト ---
  
end

といった形になります。