カウンタで分岐させましょう

 $ σ_σ$  < カウンタってつまり、数値の扱いについてね。
 Σc ' _' )  < カウントダウーン!

今回から中級編

 今回からテクスティオの中級編に入ります。といっても、特別大きな変化があるわけではないですが。
 入門編は使わないでゲームを作るのはちょい無理ぐらいの知識、中級編は使うとより深く、あるいは簡単にゲームが作れるようになる知識、というくらいの差です。
 今回は、テクスティオで扱う数値を解説します。

 テクスティオで扱える数値は整数に限ります。

<?xml version="1.0" encoding="UTF-8"?>
<textio><act><select>
<option verb="ミル;">
	<option noun="アタリ;マワリ;" atto="">
		<p> カベがある。</p>
	</option>
	<option noun="カベ">
		<p var="hitCounter~2"> 脆そうなカベだ。<else/> カベは崩れている。</p>
	</option>
</option>
<option verb="タタク">
	<option noun="カベ" var="hitCounter~2">
		<p> カベが揺れた。</p>
		<var id="hitCounter">+1</var>
	<else var="hitCounter=3"/>
		<p> カベが崩れた。</p>
		<var id="hitCounter">+1</var>
	<else/>
		<p> カベは、これ以上崩れないようだ。</p>
	</option>
</option>
<option verb="ツム;ツミアゲル" var="hitCounter=4"><option noun="カベ">
	<p> 崩れた壁を積み上げた。</p>
	<var id="hitCounter">0</var>
</option></option>
</select></act></textio>

各要素の説明

var属性による条件範囲指定

<p var="hitCounter~2"> 脆そうなカベだ。<else/> カベは崩れている。</p>

 var属性の判定がidだけでなく、後ろに~2とか付いています。
 ~は「以上」つまり「≦」を意味しています。
 ここでの条件は「hitCounterが2以下」ということになります。

 Σc ' _' )  < あれ、varってフラグじゃなかったっけ?
 $ σ_σ$  < さらっと数字として解説してるわね。

 varはtrueとfalseの他に、0と正の整数を設定できます。
 なお、数値を設定したvarを「変数」と言います。

 Σc ' _' )  < 慌てたな。
 $ σ_σ$  < 慌てて解説入れたわね。
<else var="hitCounter=3"/>

 ~の他に=も使えます、これは見たままの「同じ」「イコール」を意味し、ここでは「hitCounterが3」が条件です。
 また変数の位置を入れ替えてvar="3~hitCounter"とすると、「hitCounterが3以上」という条件になります。
 さらに変数の左右に数値を入れてvar="3~hitCounter~10"とすると、「hitCounterが3以上10以下」という条件になります。

var要素による演算

<var id="hitCounter">+1</var>

 今回のvar要素にはtrueやfalseではなく、+1が書かれています。
 これは「変数の値を1つ増やす」という意味です。

 -も書けて、例えば<var id="hitCounter">-2</var>なら「変数の値を2つ減らす」という意味になります。

var要素による値の設定

<var id="hitCounter">0</var>

 フラグ設定と同様に、数値も設定できます。
 ただし先に解説した通り、負の数は値そのもの設定ではなく「変数の値を減らす」という意味になるので注意してください。
 これは、設定できる値は0か正の整数ですが、あとで-を使って減らせば負の整数にすることもできる、という意味でもあります。

 $ σ_σ$ アラ? < よく見たら、最初の数値ってどうなってるの?
 Σc ' _' )  < そうだ、そうだ。最初の値はfalseじゃないのか?!

 む、よくぞ気付きましたね。
 数値として加算(+)や減算(-)される場合、初期値は0として処理されます。
 ですから、初期値として0を設定する必要はありません。もちろん、設定しておいても構いません。

 これで、色々なものを数えられるようになりました。
 trueとfalseのフラグでは2種類しか場合分けできませんでしたが、これで自在に場合分けができるようになったとういわけです。

まとめ

  • var要素で0と正の整数を設定できる。
  • var要素の初期値falseは数値だと0と解釈される。
  • var要素の内容に+-を使えば加減算ができる。
  • var属性に=と~使って変数範囲の条件指定ができる。

 シナリオが複雑になってきて、思ったように動かない、変数の中味を確認したい、ということがあるかと思います。
 次回は、メッセージの中の一部を変更して表示する方法を解説します。