スポンサーリンク

コンピュータには数値や文字といったデータを電気信号に変換して記憶することができる「メモリ」という部品が内蔵されています。

プログラミングではメモリにデータを保存するときに、他のデータと区別できるよう個別の名前をつけて管理します。この特定の名前がつけられたデータの記憶場所のことを「変数」と呼びます。

変数にはデータを出し入れしたり、中のデータを変更(上書き)したりすることができます。

変数はその他多くのプログラミング言語でも共通して存在する概念です。他の言語と同様に、スクラッチにも「変数」をつくる機能があります。

 

スクラッチで変数をつくる方法

「スクリプト」タブの中の「データ」というグループを選択すると、データに関連したボタンが表示されますので、「変数を作る」というボタンを押します。

scratch_12

 

すると以下のように変数に名前を付けて作成するためのウィンドウが開きます。

スクラッチの変数を作成用ウィンドウ

 

変数名の欄に適当な名前を入力して「OK」ボタンを押します。ここでは例として、ネコのキャラクターを移動させる歩数を入れておく変数を作ります。名前は「ネコの歩数」という名前にしました。

 

これで「ネコの歩数」という名前の変数ができました。

 

変数を作成することができたので、次は変数の基本的な使い方について見ていきます。

変数に数値を入れる

まずは作った変数に数値を入れる(”代入する”と言います)方法について見ていきます。プログラムが開始された後に「データ」グループの中の「ネコの歩数を(0)にする」というブロックをつなげます。

スクラッチの変数への代入

 

このブロックの数値が表示されてる部分には、変数に代入したい数値を入力します。ここでは仮に50という数値を「ネコの歩数」という変数に代入するようにします。(数値は半角文字で入力します。)

 

次に「ネコの歩数」を作ったときと同じ要領で今度は「ネコの傾き」という変数を作ります。

 

続いて「ネコの傾き」に45を代入するブロックをつなげます。

代入用ブロックは変数名の右側にある下向き三角をクリックすることで、これまで作った変数の中から代入する変数を選択することができます。

 

変数を使用する

今度は変数に入っている数値を使用する方法を見ていきます。

例としてここでは「ネコの傾き」に入っている数値の分だけネコを傾けた後、「ネコの歩数」に入っている数値の分だけネコを前に進める、というプログラムを作成します。

スポンサーリンク

まずは「動き」グループの中の「○○度に向ける」というブロックを取り出します。

 

「○○度に向ける」というブロックはスプライトを指定した角度に回転させる機能をもっています。このブロックには初期状態で”90度”の角度が設定されています。

 

「○○度に向ける」はスプライトを指定した角度に回転させる機能をもったブロックです。以下は角度を”30度”に設定した例です。(数値を入力するときは半角数字を使用します。)

 

上の例では回転角度を直接ブロックに記述していますが、回転角度には変数を入れることもできます。

スクリプトタブ内のデータのグループを表示させ、先ほど作成した「ネコの傾き」変数を取り出します。

 

取り出した「ネコの傾き」変数を「○○度に向ける」の数値入力欄の場所までドラッグします。数値入力欄がハイライトされた位置でドロップすると変数が数値入力欄にはまります。(変数の先頭の丸みと数値入力欄の先頭の丸みを合わせるような位置にもっていってドロップするとうまくはまります。)

この状態で「○○度に向ける」のブロックが実行されると、スプライトの角度は「ネコの傾き」変数の中に入っている数値に設定されます。

「○○度に向ける」のブロックに直接数値を記入した場合と違って、変数で数値を指定した場合はプログラムの途中で自由に数値を変更することができます。

 

「○○度に向ける」のブロックに「ネコの傾き」変数を入れることができたら今度は「○○度に向ける」ブロックをプログラムの最後につなげます。

 

同じ要領で今度は「動き」の中にある「○○歩動かす」というブロックを取り出し、歩数の入力欄に「ネコの歩数」をセットしたブロックをつくってプログラムの最後につなげます。

 

これでプログラムが完成しました。この状態で緑の旗のアイコンをクリックしてプログラムをスタートさせてみてください。ネコのキャラクターが斜め45度の方向に進むのが確認できたと思います。

 

最後にこのプログラムの内容について少しおさらいをします。プログラムが実行されるとネコが斜め45度の方に向かって進みました。これは「○○度に向ける」ブロックの働きでネコが斜め45度の方向に向いた後、「○○歩動かす」のブロックがネコを前に動かしたからです。

「○○歩動かす」のブロックはスプライトの向いている方向に指定した歩数(距離)だけ移動させる機能をもっているので、動く方向はスプライトの向いている方向によって異なります。

そしてネコが「○○度に向ける」ブロックで斜め45度の方向に向いたのは、「ネコの傾き」という変数の中に45という数値が代入されていたからです。なのでプログラムの最初で代入した変数の数値を変えると、ネコの進む向きや歩数(移動距離)を変えることができます。ぜひ数値を変えて実験してみてください。(ネコは画面の端まで来るとそれ以上前に進めません。ネコは画面上でドラッグして好きな場所へ置くことができますので、端まできても画面中央まで戻すことができます。)

プログラムでは並べられた命令を上から順番に実行していきます。プログラムは音楽の楽譜のようなもので、命令の一つ一つは音符にあたります。同じ音符を使っていても順番が違えば違う曲になるように、プログラムでも命令の順番はとても重要です。

例えば「ネコの傾き」に45という数値を代入するブロック(命令)の前に「○○度に向ける」のブロックが実行されるような並び方にすると、「○○度に向ける」の段階でまだ変数の中に数値が入っていないので、ネコは斜め45度に回転してくれません。

 

スポンサーリンク