その5 変数だってお手の物!!編

「いや、お久しぶりでございます〜!更新遅くて申し訳ございませんね〜!」
「時間あるくせにサボってるからだぞ」
はい!そこ!!私語は慎みなさい!!!
「はぁ〜・・・・・」
「大丈夫だって!!オイラ自信あるもん。参考にしてもらってない・・・・・うう・・・・・・」
「・・・・・そう・・・・・・・」
「オイラだって、かつては先生を目指した頃だってあったんだ・・・・・」
「そうなの?」
めちゃくちゃう〜っそ、ばりばりう〜っそ、んなことないよ〜!
「・・・・・てめぇ・・・・・・」
「そんなオイラがやってる講座、はたして役に立っているのか?!・・・いや、たっていないだろう!!」
「そんな悲しくなること言い切るなよ・・・・・」
「それでもいい・・・・。それでもいいんだ!!1人でも助けになってるって人がいれば・・・・・!!」
「わかったから早く始めようぜ〜〜」
「よし、馬鹿なことはここまでにして始めよう」
「切り替え早いね」
「まあな。じゃ、今日は変数についてだ。そもそも変数とはなんぞや?!そう思ったキミ!!こんなところに来ている暇があったら調べるんだ!!!」
「調べるためにここに来たんだろ?!ここを見てくれている人って・・・・・」
「冷やかしに来たのかもよ?」
「なるほど・・・・って、オイ!!
「変数ってのは数字とか文字とかを入れておく『箱』のことだ。そして、その中身のものを自由に変化させることができる。なんせ『変』数だからな」
とかあいうえおとか?」
「他になにがある?」
「すいません・・・・・」
「この中に入れたものはいつでも取り出すことができる。だから、入れておくと言うより『しまっておく』と言った方がいいかもね」
「んで、これは何に使うんだ?」
「一概にこう!って使い方はないと思う。この変数は使い方次第であらゆることができるんだ。とりあえず基本的なことから始めていこう」
「おう」
「さっきも言ったように、変数は色々な使い方ができる。しかし、その殆どが何かの数値を示す『パラメーター』だと思う」
『好感度』とか?」
「そうそう。例えば、恋愛アドベンチャーで主人公とヒロインがいます。そして進めていくうちに選択肢が出てきて、ヒロインに好かれるような言動・行動をすれば好感度が1づつ上昇していく。そして、最後の地点で好感度が一定以上に達していたらヒロインとラブラブに、一定以下ならさようなり〜ってなる。典型的な変数の使い方だね」
「よくわかんねえなあ・・・・・」
「まあ、いずれ慣れるって。じゃあ、実際に使ってみよう。聞くよりやってみた方が分かるって」

*define

game
*start
おや?@
リンゴがいっぱいあるぞ〜!!\

*ikutu
今のところ%1個のリンゴを食ったぞ。@

select "食う",*yes,"食わない",*no

*yes
食ったる〜!!\

inc %1
goto *ikutu

*no
断食じゃ!!\

goto *ikutu


「さて、上の礼の場合、変数は食ったリンゴの数を表してる。そして、選択肢で食うを選ぶと、もちろん食った数・・・つまり、変数の中身も増えるって感じだな」
「ってことは・・・・『%1』ってのが変数だな?」
「その通り。このように数字を扱う変数を『数字変数』というから覚えてねん。あと新しく出てきたのは『inc』だな。『inc 数字変数』ってのは、数字変数に1を足すという命令だ」
「ふんふん」
「つまり、上のはこういう流れだ。まずスタートする。
まだ何もしていないんだから、『%1』の中身は『0』だね。そして、選択肢で『食う』を選ぶ。すると、『*kuu』というラベルへ飛ぶ。
んで、『inc %1』ってことは『%1に1が足される』。つまり、『%1』の中身が『0』から1足されて『1』になる。
その後『*ikutu』というラベルに飛ぶ。『今のところ%1個のリンゴを食ったぞ』って文にある『%1』の中身は『1』だから、この文は『今のところ1個のリンゴを食ったぞ』と表示される。
もし選択肢で『食わない』を選んだら結局『%1』にはなにも起こらず『*ikutu』へ行く。
もしもこの段階でリンゴを1個も食ってなかったら、そこの文にある『%1個』『0個』、もし1個食っていれば『2個』という風に表示される。
あとはその繰り返しだ。・・・・・ゼイゼイ」
「お疲れ・・・・・」
「わかってくれたかな?お願いだからわかってっ!!」
「わかったわかった・・・・。上のでは『変数に1を足』すってのしかないけど、他には何があるんだ?」
「色々あるから簡単なのを一部だけ出すよ」

mov 変数,数字 = 変数に数字を代入する *

inc 変数 = 変数に1足す

dec 変数 = 変数に1引く

add 変数,数字 = 変数に数字を足す *

sub 変数,数字 = 変数に数字を引く *


「これは本当にごく一部。他のはマニュアルとかを参考にしてね。んで、*マークが付いてるものは『文字変数』でも使える命令ってことだよ」
文字変数??」
「そのまんま。文字を扱う変数だから『文字変数』『$数字』って風に書く」
「例えばどんなときに使うの?」
「分かり易いのは、プレイヤーに主人公の名前を入力させてそれをしまっておいて、主人公が呼ばれる度にそれを使うようにするとか、問題に答えさせるイベントとかで、答えを入れといてプレイヤーが答えた答えと照合させて正解・不正解かをみるとか・・・・。」
「ふう・・・ん?」
「根本的には数字変数と同じだけど、ちょびっと扱いが難しいかも・・・・・。数字変数に慣れてからにしたほうがいいかもね」
「そうか・・・・」
「またそのうちに説明するよ」
「わかった」
「さて、ここでもう1つ。変数をより便利に使うために覚えていただきましょう」
「まだあんの〜?」
「腐るほどある」
「う゛ぇ・・・・・」
「じゃ、下の例を見ておくれ」

*define

game
*start

mov %1,5
*ikutu

if %1=0 goto *nai

机の上にリンゴが%1個あるぞ〜!@
select "食う",*yes,"食わない",*no

*yes
食ったる〜!!\

dec %1
goto *ikutu

*no
断食じゃ!!\

goto *ikutu

*nai
あ〜!!@
リンゴが無くなっちゃったよ〜!!\

end


『if』???」
『if』というのは『条件命令』といって『条件判断』する命令だ。そのまんまだよ。上の例で言うと、『if %1=0 goto *nai』・・・『if』=もし・『%1=0』=『%1』と『0』が『=』つまり、『%1』が『0』だったら・『goto *ikutu』=『*ikutu』というラベルへ行く。つまりこれは、『もし、%1が0だったら*ikutuというラベルへ行く』という意味になる」
「え〜っと、『mov %1,5』だから『%1』『5』代入されて、選択肢で『食う』を選んだら『dec %1』だから『%1』1引かれて、それが繰り返されて、もし、%1が0になったら『if』の条件に合うから『*ikutu』というラベルへ飛んで終わり・・・・かな?」
「はいっ、その通り!!」
「よくわかんね・・・・」
「慣れるしかないね」
「冷たっ!」
「そんなもんだって。さて、今回はここまでかな」
「やっとかあ〜」
「まだ基礎の部分だぞ?よし!ここらで区切りをつけよう!!1つ簡単なゲームを作ってみよう」
「え?!マジで?!!」
「ここまでのことでも十分作れるよ。マジな話」
「ほ、本当かよ・・・・?」
「ここまでのまとめ・復習ってことでさ。ちゃんとわからなくなったら教えるって。作ってみないと分からない部分もあると思うし」
「ああ・・・・・・」
「ま、今回はさようなり〜ってことで」
「なんか強引な終わり方だな・・・・」
「気にすんな!じゃ〜ね〜〜!!」


【今日の復習】

『%数字』
= 数字変数。名前の通り数字を扱う変数

『$数字』
= 文字変数。こっちは文字を扱う変数

『mov 変数,数字』
= 変数に数字を代入する *

『inc 変数』
= 変数に1足す

『dec 変数』
= 変数に1引く

『add 変数,数字』
= 変数に数字を足す *

『sub 変数,数字』
= 変数に数字を引く *

*マークがあるものは、数字変数・文字変数共に使える命令

『if 条件 命令』
= もし条件が合っていれば、命令を行う

条件に使える記号
A=B・・・AとBが同じとき、等しいとき
A>B・・・AがBより大きいとき(BがAより小さいとき)
A A>=B・・・AがB以上のとき(BがA以下のとき)
A<=B・・・BがA以上のとき(AがB以下のとき)
A<>B or A!=B・・・AとBが違うとき、等しくないとき

<もどる>