RPGツクール2000/スイッチ・変数
■複数の変数から一番大きい変数の値を調べる
(更新:2007/05/19)


複数の変数の値から一番大きい数値を検索する方法を紹介します。



☆条件分岐型
イベントコマンド:条件分岐を使って、
1つずつ変数の値を比較していく方法です。

調べる変数の数が少ない時や、
定期的に並列処理するなどで常に一番大きい値を調べる時には、
この方法が適しています。
※同一の数値の場合は変数番号の小さい方を優先とします。



基本形式は以下の通りです。
▼基本形式
◆条件分岐:変数[0001]がV[0002]以上<変数1番が大きい
 ◆
:それ以外の場合<変数2番が大きい
 ◆
:分岐終了


この基本形式を重ねて複数の変数の値から一番大きい値を探します。



▼4個の変数の中から調べる
◆条件分岐:変数[0001]がV[0002]以上(変数1番>=変数2番)
 ◆条件分岐:変数[0001]がV[0003]以上(変数1番>=変数3番)
  ◆条件分岐:変数[0001]がV[0004]以上(変数1番>=変数4番)
   ◆〜変数1番が一番大きい値〜
   ◆
  :それ以外の場合(変数1番<変数4番)
   ◆〜変数4番が一番大きい値〜
   ◆
  :分岐終了
  ◆
 :それ以外の場合
(変数1番<変数3番)
  ◆条件分岐:変数[0003]がV[0004]以上(変数3番>=変数4番)
   ◆〜変数3番が一番大きい値〜
   ◆
  :それ以外の場合(変数3番<変数4番)
   ◆〜変数4番が一番大きい値〜
   ◆
  :分岐終了
  ◆
 :分岐終了
 ◆
:それ以外の場合
(変数1番<変数2番)
 ◆条件分岐:変数[0002]がV[0003]以上(変数2番>=変数3番)
  ◆条件分岐:変数[0002]がV[0004]以上(変数2番>=変数4番)
   ◆〜変数2番が一番大きい値〜
   ◆
  :それ以外の場合(変数2番<変数4番)
   ◆〜変数4番が一番大きい値〜
   ◆
  :分岐終了
  ◆
 :それ以外の場合

  ◆条件分岐:変数[0003]がV[0004]以上(変数3番>=変数4番)
   ◆〜変数3番が一番大きい値〜
   ◆
  :それ以外の場合(変数3番<変数4番)
   ◆〜変数4番が一番大きい値〜
   ◆
  :分岐終了
  ◆
 :分岐終了

 ◆
:分岐終了




☆加算型
変数の値を別の変数へ代入してから1ずつ加算していき、
一番最初に決められた値まで達した変数が一番大きい値と判断します。

上記の☆条件分岐型よりは設定が簡単なので、
たくさんの変数の中から一番大きい値を調べる時には、
この方法の方が適しています。

しかし定期的に並列処理するでは処理落ちが発生しますので、
定期的に並列処理するでは適さない設定です。



変数0001番〜0010番の変数の中から一番大きい値を調べます。
計算用の変数は0011番〜0020番を使用します。

▼10個の変数の中から調べる
◆変数の操作:[0011]代入,変数[0001]の値<変数1番の値をコピー
◆変数の操作:[0012]代入,変数[0002]の値<変数2番の値をコピー
◆変数の操作:[0013]代入,変数[0003]の値<変数3番の値をコピー
◆変数の操作:[0014]代入,変数[0004]の値<変数4番の値をコピー
◆変数の操作:[0015]代入,変数[0005]の値<変数5番の値をコピー
◆変数の操作:[0016]代入,変数[0006]の値<変数6番の値をコピー
◆変数の操作:[0017]代入,変数[0007]の値<変数7番の値をコピー
◆変数の操作:[0018]代入,変数[0008]の値<変数8番の値をコピー
◆変数の操作:[0019]代入,変数[0009]の値<変数9番の値をコピー
◆変数の操作:[0020]代入,変数[0010]の値<変数10番の値をコピー
◆繰り返し処理<変数11〜20番のどれかが1000以上になるまでは加算処理を繰り返す。
 ◆変数の操作:[0011〜0020]加算,1
 ◆条件分岐:変数[0011]が1000以上
  〜変数1番が一番大きい値〜
  ◆繰り返し処理の中断
  ◆
 :分岐終了
 ◆条件分岐:変数[0012]が1000以上
  〜変数2番が一番大きい値〜
  ◆繰り返し処理の中断
  ◆
 :分岐終了
 ◆条件分岐:変数[0013]が1000以上
  〜変数3番が一番大きい値〜
  ◆繰り返し処理の中断
  ◆
 :分岐終了
 ◆条件分岐:変数[0014]が1000以上
  〜変数4番が一番大きい値〜
  ◆繰り返し処理の中断
  ◆
 :分岐終了
 ◆条件分岐:変数[0015]が1000以上
  〜変数5番が一番大きい値〜
  ◆繰り返し処理の中断
  ◆
 :分岐終了
 ◆条件分岐:変数[0016]が1000以上
  〜変数6番が一番大きい値〜
  ◆繰り返し処理の中断
  ◆
 :分岐終了
 ◆条件分岐:変数[0017]が1000以上
  〜変数7番が一番大きい値〜
  ◆繰り返し処理の中断
  ◆
 :分岐終了
 ◆条件分岐:変数[0018]が1000以上
  〜変数8番が一番大きい値〜
  ◆繰り返し処理の中断
  ◆
 :分岐終了
 ◆条件分岐:変数[0019]が1000以上
  〜変数9番が一番大きい値〜
  ◆繰り返し処理の中断
  ◆
 :分岐終了
 ◆条件分岐:変数[0020]が1000以上
  〜変数10番が一番大きい値〜
  ◆繰り返し処理の中断
  ◆
 :分岐終了
 ◆
:以上繰り返し




この加算型の応用して、
自作戦闘にて主人公と敵キャラの敏捷性を変数に代入し、
自作戦闘での行動順(加算して1000になった者から行動開始)を、
設定する事ができます。



◎関連ページ
 ●敏捷性順に処理する(自作戦闘用)
 ●イベントコマンド:変数の操作


YADOTトップ  このサイトは何?  気紛れな空間へ戻る  メール