変数(後編)
計算
「変数」とは言うものの、前ページではHPの値は変わらなかったので、
変数の意味が特にありませんでした。
次はいよいよ変数の値を変えてみたいと思います。
HP200の主人公が70のダメージを受けたとしましょう。
残りHPが130になるのは暗算でできますね?
これをプログラム的にどう書くかというと、
「HP-70の計算結果をHPに代入する」ということになります。
実際に書いてみましょう。
screen 0, 640, 480
HP = 200
MP = 80
mes “主人公は70のダメージ!”
HP = HP – 70
mes “現在のHPは” + HP + “です”
前に説明したとおり「=」という記号は、
=の右にある値を、=の左に書いた変数に代入する役割を持っています。
コンピューターというのは直訳すれば計算機なわけですから
HP-70という式を見ると、瞬時に計算して130という値にしてしまいます。
そして、変数HPに130を代入するわけですが、
変数というのは1つの値しか入れることができません。
したがって、130という値を代入すると、もともと入っていた200という
値は消えてしまいます。
つまり、値が上書きされるということですね。
と、言うわけで、上のプログラムを実行すると、HPは130と表示されます。
四則演算
先ほどは引き算をしましたが、
もちろん足し算、掛け算、割り算も同様にできます。
ただし、掛け算をする場合の記号は「×」ではなく「*」になり、
割り算は「÷」ではなく「/」になります。
これはHSPのルールではなく、
コンピュータのルールになりますので覚えておいて下さい。
では、次のように書いてみましょう。
screen 0, 640, 480
HP = 200
MP = 80
mes “主人公は70のダメージ!”
HP = HP – 70
mes “現在のHPは” + HP + “です”
mes “主人公は45回復した!”
HP = HP + 45
mes “現在のHPは” + HP + “です”
mes “特殊能力によりHPが3倍!”
HP = HP * 3
mes “現在のHPは” + HP + “です”
mes “重力魔法を受けてHPが半分になった!”
HP = HP / 2
mes “現在のHPは” + HP + “です”
実行すると、次のように表示されると思います。
<実行結果>
主人公は70のダメージ!
現在のHPは130です。
主人公は45回復した!
現在のHPは175です。
特殊能力によりHPが3倍!
現在のHPは525です。
重力魔法を受けてHPが半分になった!
現在のHPは262です。
特に難しいことはないでしょう。
しかし、1カ所だけ計算がおかしいことに気づきましたか・・・?
よく見てください。
一番最後の割り算の計算がおかしいですね。
525だったHPが半分になれば262.5になるはずです。
ところが表示結果を見ると262になっています。
HSPは小数点以下を切り捨て、勝手に整数にします。
小数が使えないわけではありませんが、とりあえず今は、
変数に入るのは整数だけと思っていてください。
今回のポイント
-
変数に式を代入すると、式の計算結果が入る。
-
足し算は +、引き算は –、掛け算は *、割り算は / で求める。
-
変数には基本的に整数しか入らない。