株式会社リサイクルループ

ブログ

回収依頼お問合わせ

株式会社リサイクルループ

回収依頼

MENU

【HSPプログラミング講座#6】文字や数字を自由に変化させる「変数」を使ってみよう!

プログラミング講座アイキャッチ

これまでのHSP言語プログラミングでは表示する文字や数字を最初に決めて、プログラムを実行したら実行中に変更することができませんでした。例えば変数を使えばボタンを押した回数をカウントして1つずつ増やしたり、文字の内容を好きなときに書き換えることができます。プログラミングにとって変数は大事な機能の一つですから、ちょっと難しいかもしれませんが頑張って覚えていきましょー!

HSPプログラミング_変数01

まずは変数を使うところから始めましょう。今回は文字や数字を変えたりすることはしていません。変数を用意するところから始めます。1行目は説明の必要はないですね。 3行目、4行目、5行目が変数の用意をしているところです。(変数を宣言するという言い方をしますが、まぁ難しい言葉はどーでもいいですね) まず3行目は「aaa」という名前の変数を用意します。変数とは数字や文字を入れて記憶しておいてくれる箱だと思ってください。そしてその後に続く「=」イコール記号は変数を用意するときの決まりごとですから必ず入れると覚えておいてください。その後に数字の「5」を書いています。この3行目の意味は「aaaという名前の箱に数字の5を入れて記憶しておいてね」ってことになります。4行目も同じです。数字の10をbbbという名前の変数に入れているだけです。ちょっと違うのは5行目ですが、なんとなくわかりますよね?「cccという変数に【あいうえお】の文字を入れている」ということです。mesと同じように文字の場合は「”」ダブルクォーテーションで囲みますからね!

あとで詳しく説明するときが来るかもしれませんが、例えば「aaa = 5」と「aaa = “5”」は別物になります。「”」ダブルクォーテーションに囲まれた5は文字として認識されていますから、足し算とか、引き算とか、計算に使うことができません。

そして7行目は前回のプログラミング講座で使用したpos命令ですね。画面の真ん中辺りに表示したいので適当にX座標200、Y座標200の位置にしてみました。

その後の8行目、9行目、10行目でそれぞれの変数の中に記憶させたものをmes命令で表示させています。注意したいのが1行目で使ったmes命令と違うのは「”」ダブルクォーテーションが必要ないことです。「”」ダブルクォーテーションは文字を表すときに使うのですが、変数の場合は使いません。cccの変数の中には「あいうえお」の文字が入っていますが「mes “ccc”」とは書きません。すでにcccの変数の中に「”あいうえお”」と「”」ダブルクォーテーションが一緒に入っていると思ってください。だからmesのところでは必要ありません。

さて実行してみましょう!

HSPプログラミング_変数02

はい。こんな感じです~ どうでしょうか? なんとなく予想通りの結果でしたか? ちょっと複雑になってきたので、説明もわかりにくいところがあるかもしれません。 そんなときは何度も読み返してプログラムと実行結果と説明を見比べてみてくださいね!

さぁ次のプログラムにいきましょう!

HSPプログラミング_変数03

次は12行目と13行目をstop命令の前に追加しただけです。 aaaの変数をもう一度用意して数字の123を入れました。先ほどのプログラムは数字の5を入れていましたね。 これでaaaの変数の中身を書き換えることができるのです。 それを確認するために13行目の「mes aaa」で表示して確かめてみましょう。

HSPプログラミング_変数04

このように変数の中身を何度も書き換えることができるのです。 今度のプログラムでは計算をしてみたいと思います。変数の中身を「足し算したり、引き算したり」することができるのです! それでは下記のプログラムを書いてみてください。

HSPプログラミング_変数05

15行目以降を追加しました。16行目は変数同士を足し算しています。17行目は引き算です。18行目は変数と普通の数字で足し算をしています。結果を想像してみてくださいね。

HSPプログラミング_変数06

どうでしたか? 予想通りの結果でしたか? プログラミングをするときには「いま変数の中身はいくつだっけ?」というのを理解しておかないと実行結果が思い通りにならなくなってしまいますよ。

さぁ、ついにココまで来ましたから、今まで使ってきた命令を使って連射ゲームでも作ってみますか!なんとなく作れそうな気がします。 イメージしているのはボタンを押したら数字が1つずつ上がっていくプログラムです。 友達同士で時間を測ってどっちが多く連打できたか競争できそうです。

では、次回をお楽しみに~