RPGツクール2000/スイッチ・変数【サイトトップへ戻る】 ■複数の変数へ重ならない乱数の値を設定する (更新:2022/11/03)
■重ならない乱数とは? 複数の変数番号へまとめて乱数の値を設定する場合…
変数0001番=5 変数0002番=8 変数0003番=17 変数0004番=11 などと、1つのイベント設定で複数の変数番号に異なる値で設定する事ができます。 しかし上記の設定では… 変数0001番=7 変数0002番=10 変数0003番=10 変数0004番=7 などと同じ値が重なってしまう事があります。 このページでは、他の変数と値が重ならないようにする乱数の設定方法を紹介します。 ▲トップへ戻る▲ ■2つの変数の値を重ならないようにする 変数0001番と変数0002番に「5〜20」の乱数の設定を行い、 変数0001番と変数0002番の値が重ならないように設定します。
基本的に上記の設定方法で問題無いですが、 一応条件分岐を使わない設定方法も紹介しておきます。
こちらの設定方法の場合、例えば… 「変数0001と0004の値が重ならない」 「変数0002と0005の値が重ならない」 「変数0003と0006の値が重ならない」 と言った設定を行いたい時に…
ループ処理などの処理落ち対策で、出来る限り設定を処理の負担を軽減したい時には、 このような設定方法が有効になる事があります。 ▲トップへ戻る▲ ■4つの変数の値を重ならないようにする 変数0001番〜変数0004番に「5〜20」の乱数の設定を行い、 変数0001番〜変数0004番の値は重ならないようにします。
▲トップへ戻る▲ ■1〜10の値を10個の変数に重ならないように設定する 「1〜10」の値を10個の変数(変数[0101〜0110])に設定します。 今回のイベント処理では、 イベントコマンド:変数の操作の変数〜の番号の変数を使っている関係で、 かなり難解な処理になっています。 しかし上記の■4つの変数の値を重ならないようにするとは異なり、 値が重なったら乱数の設定をやり直すと言った処理が無いため、 10個の変数に効率良く「1〜10」の値を割り振る事ができます。 応用次第では「1〜50」「1〜100」などの設定もできます。 なお、処理の構造上、連番の数字を設定する処理になります。 使用する変数は以下の通りです。 変数0001〜0004番=乱数や変数番号の設定に使用。 変数0101〜0110番=1〜10の値(処理結果)を設定。 変数0201〜0210番=変数の呼び出し番号として[101〜110]の値を保存。 変数の操作の設定には「V」が付いている設定と付いていない設定があるので、 注意して設定してください。
■処理構造の解説 まずラベル1のループ処理で、変数[0201〜0210]に「101〜110」の値を設定します。 この「101〜110」は変数[0101〜0110]を呼び出す時に使います。
ラベル2からの処理では、「1〜10」の値を変数[0101〜0110]に設定していく処理を行います。
剰余の処理により、変数[0001:乱数]の値は「0〜9」になります。
この変数[0001:乱数]の値が変数[0201〜0210]を呼び出す変数番号になります。
変数[0201〜0210]保存されている値(0101〜0110)を変数[0002:変数番号]に代入。 そして変数[0002:変数番号]に保存された変数番号(0101〜0110)を使って、 変数[0003:設定する値]に保存されている値「1」を設定します。 例えば変数[0001:乱数]の値が「203」の場合は、 変数203番に保存された値「103」が呼び出されます。 そして呼び出された「103」の変数番号(変数103番)に「1」が代入されます。
まだ設定する値が残っている場合は条件分岐で分岐し、 使用済みの変数[0201〜0210]の値に、 未使用の変数[0201〜0210]の値を上書きする処理を実行します。 例えば変数[0203]の値を使用した場合は、変数[0210]の値を変数[0203]に設定します。
変数[0003:設定する値]の値を「1」から「2」に変更します。 ラベル2へ戻り、次に「2」の値を変数[0101〜0110]に設定する処理を実行します。
剰余の処理により、変数[0001:乱数]の値は「0〜8」になります。
この変数[0001:乱数]の値が変数[0201〜0209]を呼び出す変数番号になります。 仮に変数[0001:乱数]の値が「205」の場合は、 変数203番に保存された値「105」が呼び出されます。 そして呼び出された「105」の変数番号(変数105番)に「2」が設定されます。
そして条件分岐で分岐し、値を使用した変数[0205]に変数[0209]の値を設定します。
この処理を繰り返していくと…
▲トップへ戻る▲ ◎関連ページ ●「変数」って何? ●「乱数」って何? ●「剰余」って何? ●イベントコマンド:変数の操作 ┗○変数〜の番号の変数 |