FC2ブログ

何かに使えるかもしれない小技

スクリプトを自分で編集する人向けです。

①乱数に重みをつける
rand(100) とやると、0~99の数値が同じ確率で選ばれるけど、これに重みを出す方法です。

second_digit = [] # 10の位を格納する配列
for i in 0..9
# 0を10個、1を9個、…9を1個ずつ、プッシュする。
(10-i).times do second_digit.push(i) end
end
# numにsecond_digitから選択した数値の十倍の数値を入れる
num = second_digit[rand(second_digit.size-1)] * 10
num += rand(10) # numに0~9の乱数を加算する。
return [num, 6].max # 最低でも6を返したいときとか

second_digit に格納する数値を好きに変えることで、重みを自由に変えられます。


②10個の変数の内3つに、50以上の数値を入れる。
v_list = [1,2,3,4,5,6,7,8,9,10] # 変数のIDリスト
c_list = [] # 50を越えた変数のIDを格納する
i = 0
loop do
break if c_list.size == 3 # 50を越えた数値の数が3つになったらブレイク
unless c_list.include?(v_list[i])
r = rand(100)
$game_variables[v_list[i]] = r
c_list.push(v_list[i]) if r >= 50 # 乱数が50を越えたら、IDを格納する
end
i += 1
i = 0 if i == v_list.size # リストの最後までいったら0に戻す
end

何やってるかわからなかったら、ごめんなさい。

ちなみに、②の小技は今作で使用する予定です。

テーマ : RPGツクール
ジャンル : ゲーム

コメントの投稿

非公開コメント

プロフィール

ぶちょー

Author:ぶちょー
現在、ばにくら継章をRPGツクールVXAceで製作しています。

最新記事
最新コメント
カテゴリ
検索フォーム
リンク
RSSリンクの表示