パラメーターの操作

ストーリーの進行・分岐に合わせて複数のパラメーターを設定・変更していくことが出来ます。
そして、パラメーターの値に合わせてストーリーを条件分岐させていくことが出来ます。

パラメーターの設定・変更
下の三種類の指定語でパラメーターを設定・変更できます。
!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」の意味です。

変数を表示する場合は簡易表現として、
[変数名]
としてもかまいません。