パラメーターの操作
ストーリーの進行・分岐に合わせて複数のパラメーターを設定・変更していくことが出来ます。
そして、パラメーターの値に合わせてストーリーを条件分岐させていくことが出来ます。
パラメーターの設定・変更
下の三種類の指定語でパラメーターを設定・変更できます。
!section[xx]
!choice[xx]
!no_choice[xx]
例を示します。
!!パラメーター指定のサンプルです。 <−−コメント
!section[1]-param[(a)=3;(b)=15;] <−−セクション1の宣言、パラメーターの設定
ようこそ始めまして。
変数aは3、変数bは15に設定しています。
!choice[2]-param[(a)+=2;] <−−選択肢1の宣言、パラメーターの変更
選択肢1
変数aに2加えます。
!choice[2]-param[(a)-=2;] <−−選択肢2の宣言、パラメーターの変更
選択肢2
変数aから2引きます。
!section[2] <−−セクション2の宣言
さて、変数aはいくつになったでしょう?
今度は変数bに3を掛けます。
!no_choice[3]-param[(b)*=3;] <−−選択肢無しの宣言、パラメーターの変更
!section[3] <−−セクション3の宣言
変数bは45になりました。
おしまい。
!end <−−終わりの宣言
!!これでお終い。 <−−コメント
指定語の後に
-param[ ]
を追加すれば設定・変更できます。
[ ]の中は
( 変数名 ) + 演算子 + 値 ; (最後に ; を付ける)
を変数の数だけ繰り返したものです。
代表的な演算子および例を示します。
演算子 | 例 | 意味 |
= | (a)=3; | a=3 |
+= | (a)+=3; | a=a+3 |
-= | (a)-=3; | a=a−3 |
*= | (a)*=3; | a=ax3 |
/= | (a)/=3; | a=a/3 |
少し高度な話ですが・・・
[ ]の中は、変数名をハッシュ変数に置き換えた後に、Perlのevel文で処理しています。
したがってPerlの文法に合っていれば複雑な処理も可能です。
変数に格納する値も整数だけでなく文字列などでも可能です。
間違っていれば、eval文のエラーを格納している組み込み変数$@の内容を画面に表示しますので、参考にして直してください。
条件分岐
下の二種類の指定語で条件分岐を行えます。
!choice[xx]
!no_choice[xx]
例1を示します。
!!条件分岐のサンプル1です。 <−−コメント
!section[1]-param[(a)=3;] <−−セクション1の宣言、パラメーターの設定
ようこそ始めまして。
変数aは3に設定しています。
!choice[2]-param[(a)+=2;] <−−選択肢1の宣言、パラメーターの変更
選択肢1
変数aに2加えます。
!choice[2]-param[(a)-=2;] <−−選択肢2の宣言、パラメーターの変更
選択肢2
変数aから2引きます。
!!
!section[2] <−−セクション2の宣言
さて、変数aはいくつになったでしょう?
変数aの値によって進むセクションが違いますよ。
!no_choice[3]-if[(a)>=3] <−−選択肢無しの宣言、条件分岐(変数aが3以上の場合)
!no_choice[4]-if[(a)<3] <−−選択肢無しの宣言、条件分岐(変数aが3より小さい場合)
!!
!section[3] <−−セクション3の宣言
変数aが3以上でしたので来られました。
!end <−−終わりの宣言
!section[4] <−−セクション4の宣言
変数aが3より小さかったので来られました。
!end <−−終わりの宣言
!!これでお終い。 <−−コメント
例2を示します。
!!条件分岐のサンプル2です。 <−−コメント
!section[1]-param[(a)=3;] <−−セクション1の宣言、パラメーターの設定
ようこそ始めまして。
変数aは3に設定しています。
!choice[2]-param[(a)+=2;] <−−選択肢1の宣言、パラメーターの変更
選択肢1
変数aに2加えます。
!choice[2]-param[(a)-=2;] <−−選択肢2の宣言、パラメーターの変更
選択肢2
変数aから2引きます。
!!
!section[2] <−−セクション2の宣言
さて、変数aはいくつになったでしょう?
変数aの値によって進むセクションが違いますよ。
!choice[3] <−−選択肢1の宣言、条件分岐無し(必ず表示)
選択肢1
必ず表示されます。
!choice[4]-if[(a)>=3] <−−選択肢2−1の宣言、条件分岐(変数aが3以上の場合のみ表示)
選択肢2−1
変数aが3以上の場合のみ表示されます。
!choice[5]-if[(a)<3] <−−選択肢2−2の宣言、条件分岐(変数aが3より小さい場合のみ表示)
選択肢2−2
変数aが3より小さい場合のみ表示されます。
!!
!section[3] <−−セクション3の宣言
変数aの値にかかわらず来られます。
!end <−−終わりの宣言
!section[4] <−−セクション4の宣言
変数aが3以上でしたので来られました。
!end <−−終わりの宣言
!section[5] <−−セクション5の宣言
変数aが3より小さかったので来られました。
!end <−−終わりの宣言
!!これでお終い。 <−−コメント
指定語の後に
-if[ ]
を追加すれば条件分岐できます。
[ ]の中は
( 変数名 ) + 関係演算子 + 値 ( ; は付けない!)
を論理演算子で、変数の数だけつなげたものです。
代表的な演算子および例を示します。
関係演算子 | 例 | 意味 |
== | (a)==3 | もしa=3ならば |
!= | (a)!=3 | もしa=3でなければ |
< | (a)<3 | もしa<3ならば |
<= | (a)<=3 | もしa<=3ならば |
> | (a)>3 | もしa>3ならば |
>= | (a)>=3 | もしa>=3ならば |
論理演算子 | 例 | 意味 |
&& | (a)==3 && (b)==5 | もしa=3かつb=5ならば |
|| | (a)==3 || (b)==5 | もしa=3またはb=5ならば |
少し高度な話ですが・・・
[ ]の中は、変数名をハッシュ変数に置き換えた後に、
if( 条件式 ){
ブロック
}
の条件式の部分に入れ、
それを、Perlのevel文で処理しています。
したがってPerlの文法に合っていれば複雑な処理も可能です。
変数に格納する値も整数だけでなく文字列などでも可能です。
間違っていれば、eval文のエラーを格納している組み込み変数$@の内容を画面に表示しますので、参考にして直してください。
変数の表示
変数を本文の中に表示することが出来ます。
例えば変数「sai」が4だった場合、
サイコロを振ったら[p(sai)]が出た。
と本文に記入しておけば
サイコロを振ったら4が出た。
と表示されます。
文法としては、
[p(変数名)]
となります。
「p」は「parameter」の意味です。
変数を表示する場合は簡易表現として、
[変数名]
としてもかまいません。