[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
今回は次回と一緒に、ゲームプログラムに必要不可欠な変数と繰り返し文について紹介しようと思います。
今回の内容はとても重要なので、よーく聴いてください。
ここで、
例えば、3の倍数を縦に並べるプログラムを考えてみましょう。
今までにやったことだけでやろうと、こうなるでしょうか?
mes 3
mes 6
mes 9
mes 12
mes 15
mes 18
mes 21
mes 24
mes 27
・・・ちょっと話はずれますが、このプログラムを見て、違和感を覚えた人はいるでしょうか?
そうです。""がありません。今まで、mes命令のパラメータは""で囲まれていました。
""で囲まれた文章のことを文字列と言いますが、(←覚えておくべき)
上のプログラムでは""がついていません。
と言うことは、上のプログラムのmes命令の後の数字は、文字列ではなく数値なのです。
これでなぜ動くかと言うと、HSPが自動で数値を文字列に変換してくれたからです。
mes命令に数値を渡しても描画してくれると言うことを覚えておきましょう。
話を戻しますが、
上のプログラムを実行すると、確かに縦に3から27までの3の倍数が並びます。
しかし、3の倍数が、もう100個欲しい時はどうしますか?
あるいは、3の倍数ではなく4の倍数が欲しくなった時にはどうすればよいのでしょう?
上のプログラムから変更しようと思うと、地獄のような作業が待っています。
ここで便利なのが変数と繰り返し文です。
繰り返し文は、その名の通り、繰り返しするための文(プログラム)ですが、
名前だけ聞いて分かりにくいのは変数の方だと思います。
とはいってもやっぱり名前は嘘をつかず、変数とは変わる数のことをいいます。
当たり前のことを言いますが、「3」と書けば3と言う1つの数値しか表していません。
一般的にこれは、定まっている数ということで、定数と呼ばれます。
一方、変数は、3を示している時もあれば、6を示している時もあると言う数です。
定数は数字を使って表すのに対し、変数は「x」とか「y」とかいう記号を用いて表します。
変数を「数値の入れ物」と考えた方が分かりやすいかもしれません。
変数はただの入れ物であるため、中に入れるもの(数値)によって、示す数値が変わってきます。
変数の関係の用語で知っていて欲しいものがあるので下に2つ書きます。難しくはありません。
・変数の値
変数の中に入っている数値のことです。
・代入
変数の値を設定・変更すること、
つまり、変数の中に数値を入れることを、「代入する」あるいは単に「入れる」といいます。
一度、変数にある値を代入すれば、その変数は次の代入まで、その値を保持し続けます。
また、代入する時に、それまで入っていた中身は捨てられます。
文章だけでは難しいと思うので、実際に変数を使ってみましょう。
次のプログラムを書いて実行してください。
x=3
mes x
画面に「3」が表示されたと思います。
このプログラムの1行目、「x=3」は「xの値を3にする」ことを示しています。
数学的には「xと3は等しい」と言う意味ですが、プログラミング上の「=」の意味は違い、
「右辺の数値を、左の変数に代入する」ことを意味します。
つまり、この1行目でxの値が3になったため、
2行目の「mes x」で、3が描画されたわけです。
分かったでしょうか?分からない場合も、とりあえず次に進んで見ましょう。後で読み返してみてください。
次は、今さっきのプログラムに、xを3ほど増やして表示するプログラムを付け加えてみましょう。
次のようにして実行してください。
x=3
mes x
x=x+3
mes x
「3」と「6」が表示されたと思います。
新たに加わったのは3行目と4行目ですが、3行目に注目してください。
「x=x+3」となっています。今さっき書いたとおり、「=」は「右辺の数値を、左の変数に代入する」という意味であるため、この場合、「x+3を変数xに代入する」つまり「変数xの値を3増やす」と言う意味になります。
ちょっと最初は違和感あるかもしれませんが、ここは必ず理解してください。
よって、このプログラム上では、3行目に来た時のxの値は3であるため、
この3行目でxの値は6に変更されます。
そのまま4行目に流れ、「6」が表示されると言うわけです。
ん??ということは・・・
xを3増やす
↓
表示
↓
xを3増やす
↓
表示
↓
xを3増やす
↓
表示
↓
・・・・・・
・・・・・・
これで3の倍数が表示が同じ事の繰り返しで表示できるのでは??
具体的にプログラムにするとこうです。
x=3
mes x
x=x+3
mes x
x=x+3
mes x
x=x+3
mes x
x=x+3
mes x
x=x+3
mes x
x=x+3
mes x
x=x+3
mes x
x=x+3
mes x
これで、3から27までの3の倍数を表示するプログラムができました。
これなら、もっと倍数が欲しい場合、コピーを何度もするだけで済むので、だいぶ楽になりました。
けど、書いていることが同じ事の繰り返しってなんか無駄っぽい?
これを解決するために、繰り返し文を使います。
最終的にはたった5行のプログラムになります。
それでは次回。