RPGツクール2000/スイッチ・変数【サイトトップへ戻る】
■複数の変数から一番大きい変数の値を調べる
(更新:2020/06/28)


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


ショートカット
■条件分岐型
■加算型


  
■条件分岐型

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

調べる変数の数が少ない時や定期的に並列処理するで常に一番大きい値を調べる時には、
この方法が適しています。

なお、2つの変数が同じ値である場合は、変数番号の小さい方が優先となります。



基本形式は以下の通りです。

▼基本形式
◆条件分岐:変数[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トップ  このサイトは何?  気紛れな空間へ戻る  メール