ジャンプ命令とは
ジャンプ命令とは、スクリプトの実行順序を変更する命令です。「次はこの行に飛びなさい(そこから実行しなさい)」という命令なのです。しかし、「先頭から数えて何行目にジャンプしなさい」と指定するのは無理です。数えるのも大変だし、先頭に一行追加したら番号を全て付け直しする羽目になります。そこで、セグメント文(英:segment、断片、部分、分節)を使用して、ジャンプするときの飛び先の目印にしておくのです。
どんな時に使うの?
状態によって違う処理をしたいとき、メニューを表示するとき、同じことを繰り返す時などがあります。
例 Level:0
例 Segment:1100
例 Segment:11100
例 Segment:99900
レベル文、セグメント文
ジャンプ命令の飛び先となる位置を示すために、(レベル番号と)セグメント番号を指定します。レベル文やセグメント文そのものは何も処理を行ないません。
書式 Level:『整数、0以上、重複不可』
書式 Segment:『整数、10以上(100以上を推奨)、同一レベル内では重複不可』
整数には、このセグメント文のセグメント番号を指定します。スクリプトの先頭から末尾へと見たときに、このセグメント番号は、同じレベル内ではだんだん大きくなるように(昇順に)指定する事をお勧めします。(セグメント番号を探しにくくなるので、後で重複したり探せなかったりします。)番号がとびとびになっても構いませんので、最初は10番単位などで指定しておくことをお勧めします。また、先頭のセグメント番号は100以上にするほうがよいです。(なぜなら、あとで処理を追加したくなった時に困るからです。)セグメント番号は1番から10番くらいまでは使用できませんので、ご注意ください。
例1)
Segment:100
Segment:105
Segment:110
Segment:1100
Segment:11100
Segment:99900
例2)
Level:0
Segment:100
Segment:105
Segment:110
Level:1
Segment:100
Segment:200
Segment:300
ジャンプ命令
無条件またはある条件が満たされた場合だけ、指定したセグメント番号から処理を続けます。
書式 ->Segment:『セグメント番号』(;条件指定)
例)
セグメント番号100から処理を続けます。
例 ->Segment:100
セグメント番号1100から処理を続けます。
例 ->Segment:1100
セグメント番号11100から処理を続けます。
例 ->Segment:11100
変数lf[21]が0の場合だけ、セグメント番号11200から処理を続けます。
例 ->Segment:11120;(lf[21]==0)
変数lf[8]が10以上の場合だけ、セグメント番号21900から処理を続けます。
例 ->Segment:21900;(lf[8]>=10)
変数lf[77]が5未満の場合だけ、セグメント番号31から処理を続けます。
例 ->Segment:31;(lf[77]<5)
ちょっと特殊なジャンプ命令
レベル間ジャンプ
書式 ->Level:『レベル番号』-Segment:『セグメント番号』
例 ->Level:1-Segment:10
別のレベルの指定したセグメント番号にジャンプさせる場合に使用します。
(->の後に「レベル番号-セグメント番号」と書く場合があります。)
スクリプトを終了させる
->の後に番号ではなく exit や end と書く場合があります。スクリプトを終了させる場合に使用します。
例)スクリプトを終了させます。
->exit
->end
制限時間20秒、選択肢の入れ替え有りでクイズを出題します。
Segment:300
Avatar.Menu:20,1
公式部活のひとつである「チャ道部」で、おチャ会を開催することがあります。その際に貰える定番のお土産とは?
->Segment:500
->Segment:550
->Segment:550
->Segment:545
・
・(中略)
・
Segment:500
Message:1
正解です。
->Segment:10000
Segment:545
Message:1
時間切れ・・・。
->Segment:10000
Segment:550
Message:1
間違いです。
->Segment:10000
・
・(中略)
・
Segment:10000
->exit
ピンバック: スクリプト研究所 記事一覧(目次) | スクリプト研究所