トップページ > HSPのひきだし > 変数(前編)
ゲームと言うのは
“敵を倒せばスコアが入る” や “攻撃を受ければHPが減る”
のように何らかの値が変化します。
このように変化する値をどのように扱えばいいのでしょうか。
たとえば「100」という数字があったとします。
これは、いつ何時でも「100」という意味ですね?
こういう値を「定数」と呼びます。
それに対して、上の例のスコアやHPのように、
その時によって値が変わるものを「変数」と呼びます。
変数は箱だと思ってください。
例えば、主人公のHPが200で、MPが80だったとします。
これは、HPという箱に200という値が、MPという箱に80という値が
入っているということです。
この状態を「変数HPに200が入っている」と言ったり、
「変数HPは200」と言ったりします。
実行しても何も表示されません。
さてHP=200というのはどういう意味でしょうか。
算数や数学の考え方でいくと「HPは200と等しい」という意味ですが、
プログラムでは意味が変わってきます。
実は、これがまさしく「HPという箱(変数)に、200という値を入れる」
という処理になります。
つまり、プログラムにおける「=」という記号は、
「=の右側にある値を、=の左側に書かれた名前の変数に入れる」
という役割を持ちます。
そして、このように変数に値を入れることを「代入」と言います。
つまり、上のプログラムは、
「変数HPに200を代入し、変数MPに80を代入している」と 表現します。
ちなみに、今回は「HP」「MP」という名前の変数を使いましたが、
変数名は自由につけられます。
ただし以下のルールに従ってください。
変数の“現在の値”を表示してみましょう。
文字を表示する命令はmesでしたよね?
同じ命令で変数の値を表示することができます。
実行してみましょう。
現在のHPである「200」が表示されると思います。
以前mes命令を使ったときは表示する内容を
「””(ダブルクォーテーション)」で囲んでいましたね?
でも今回は””はいりません。
ちなみにmes “HP”と書いたらどうなるでしょうか。
答えは「HP」という文字が表示されます。
つまり、HSPでは””で囲んだものは「そういう文字」と判断し、
””をつけてないものは「そういう変数」と判断します。
さて、変数の値を表示することができましたが、
ただ「200」と表示されるだけでは味気ないですね。
次のように書いてみてください。
HSPでは「文字」と「変数」の足し算ができるのです!!
ただし、文字と変数の足し算をする場合は、最初が文字でないといけません。
つまり・・・
gold = 100
mes gold + “円”
と書いても「100円」とは表示されません。
この場合は
mes “” + gold + “円”
と書いてください。
なんだか意味がないように思えますが、これで「100円」と表示されます。
2013年04月07日
変数(前編)
定数と変数
ループ処理を学びましたが、それだけではやはり何回実行しても結果は同じです。ゲームと言うのは
“敵を倒せばスコアが入る” や “攻撃を受ければHPが減る”
のように何らかの値が変化します。
このように変化する値をどのように扱えばいいのでしょうか。
たとえば「100」という数字があったとします。
これは、いつ何時でも「100」という意味ですね?
こういう値を「定数」と呼びます。
それに対して、上の例のスコアやHPのように、
その時によって値が変わるものを「変数」と呼びます。
変数は箱だと思ってください。
例えば、主人公のHPが200で、MPが80だったとします。
これは、HPという箱に200という値が、MPという箱に80という値が
入っているということです。
この状態を「変数HPに200が入っている」と言ったり、
「変数HPは200」と言ったりします。
代入
では、実際にプログラムで変数を使ってみましょう。 screen 0, 640, 480
HP = 200
MP = 80
実行しても何も表示されません。
さてHP=200というのはどういう意味でしょうか。
算数や数学の考え方でいくと「HPは200と等しい」という意味ですが、
プログラムでは意味が変わってきます。
実は、これがまさしく「HPという箱(変数)に、200という値を入れる」
という処理になります。
つまり、プログラムにおける「=」という記号は、
「=の右側にある値を、=の左側に書かれた名前の変数に入れる」
という役割を持ちます。
そして、このように変数に値を入れることを「代入」と言います。
つまり、上のプログラムは、
「変数HPに200を代入し、変数MPに80を代入している」と 表現します。
ちなみに、今回は「HP」「MP」という名前の変数を使いましたが、
変数名は自由につけられます。
ただし以下のルールに従ってください。
- 使える文字はアルファベットと 数字 と _
- 一文字目が数字は×
- 「mes」や「pos」のように、命令と同じ名前は×
表示
変数に値を代入しただけでは何の意味もありません。変数の“現在の値”を表示してみましょう。
文字を表示する命令はmesでしたよね?
同じ命令で変数の値を表示することができます。
screen 0, 640, 480
HP = 200
MP = 80
mes HP
実行してみましょう。
現在のHPである「200」が表示されると思います。
以前mes命令を使ったときは表示する内容を
「””(ダブルクォーテーション)」で囲んでいましたね?
でも今回は””はいりません。
ちなみにmes “HP”と書いたらどうなるでしょうか。
答えは「HP」という文字が表示されます。
つまり、HSPでは””で囲んだものは「そういう文字」と判断し、
””をつけてないものは「そういう変数」と判断します。
さて、変数の値を表示することができましたが、
ただ「200」と表示されるだけでは味気ないですね。
次のように書いてみてください。
screen 0, 640, 480
HP = 200
MP = 80
mes “現在のHPは” + HP + “です”
HSPでは「文字」と「変数」の足し算ができるのです!!
ただし、文字と変数の足し算をする場合は、最初が文字でないといけません。
つまり・・・
gold = 100
mes gold + “円”
と書いても「100円」とは表示されません。
この場合は
mes “” + gold + “円”
と書いてください。
なんだか意味がないように思えますが、これで「100円」と表示されます。
今回のポイント
-
変化する値は 変数 に入れて扱う。
-
変数名=値と書いて、変数に値を代入することができる。
-
mes 変数名と書いて、変数の値を表示することができる。
-
文字と変数は足し算で繋げることができる。