更新日:、 作成日:

スクラッチ 変数ブロックの使い方

はじめに

Scratch (スクラッチ) 3 の変数ブロックの使い方を紹介します。

変数に名前を付けて、それに値を入れて、必要なときにそれを取得する。これが変数の使い方です。

リストは、その変数をいくつでも入れられますものです。それぞれを名前ではなく番号で指定します。

変数ブロックとは

variables

変数ブロックでは、変数やリストを使って自由に値を入れたり取得できます。変数やリストは他のブロックとちがって自分で作成します。変数は一般的なプログラミング言語で、最もよく使うものです。

変数とは

変数とは、名札のようなものです。変数に値を入力すると、それを見た人はなんて書いているのかわかります。変数はいくつでも作成できるので、変数そのものに名前を付けて他と区別します。

言葉で説明すると分かりずらいかもしれませんが、既に使ったことがあると思います。例えば x座標 ブロックも変数でできています。値を設定して取得できます。

44

同じように変数も値を設定して取得できます。

45

このように値を設定して取得するのが変数です。 x座標 ブロックはスプライトを移動すると、それに合わせて値が変化しますが、作成した変数は自分で何かを設定しないかぎり、値が変わることはありません。

例えば、ゲームの「得点」を計算するには変数を使うと便利です。点数を獲得するたびに変数にその値を加えていけば最終的な得点がわかります。

46

何か覚えておきたい値がときは変数を使います。

一般的なプログラミング言語では、ほぼすべての値をいったん変数に入れてから使います。それだけ変数はプログラミングにとって重要なものです。

リストとは

リストは、複数の変数を入れるカバンのようなものです。リストに入れた値のことを、ここでは「項目」と呼びます。リストはいくつでも作成できるので、リストに名前を付けて他と区別します。

48

各項目を設定や取得するのに、番号で指定します。リストに入れた値に名前はありません。

47

リストの 1 番目、2 番目のように、番号は 1 から順番に自動で設定されます。

例えば、ゲームの「得点」をプレイするたびにリストに入れていくと、1 回目や 2 回目といった前回プレイした時の得点を表示できます。

変数を作成する

変数を使用するには、変数を作成する必要があります。最初から 変数 という名前の変数が作成されています。

変数を作成

[変数を作る] をクリックします。

49

変数の [名前] を入力し、[すべてのスプライト用] か [このスプライトのみ] を選択して [OK] をクリックします。

  • すべてのスプライト用:他のスプライトやステージでも同じ変数を使用できます。
  • このスプライトのみ:この変数を作成したスプライトだけが使用できます。

通常は [このスプライトのみ] を選択します。他のスプライトでも使用できると、変更する必要のないところで、まちがって変更される危険があります。不具合やバグを発生させないためにも、必要なスプライトのみで使用できるべきです。

50

作った変数のブロックが表示されます。[▼] をクリックして変数を選択できます。

51

変数を削除

変数ブロックの [▼] をクリックして削除したい [変数"変数名"を削除] をクリックします。

52

変数が削除されます。その変数が使用中のときは、コードのブロックも削除されます。

変数ブロック

change-variable

変数 を指定した だけ変更します。

数値を指定すると、その値だけ足したり引いたりします。文字列を指定すると 0 になります。

スプライトをクリックすると得点が増えていきます。

57

set-variable

変数 を指定した に変更します。

初期値などを設定するのに使います。

スクラッチを実行したときに得点を 0 にします。

58

variable

変数 の値を取得して、それをブロックの値に指定できます。

得点が 10 より大きい時に「ゲームクリア」と言います。

59

変数にコスチューム名や音名、またその番号を設定するとそれに変更できます。

75

76

show-variable

変数 をステージに表示します。

変数をチェックしたのと同じように表示します。

hide-variable

変数 をステージから隠します。

変数のチェックを外したのと同じように非表示にします。

61

変数の注意点

スクラッチの変数はプログラムが終了しても値が残っています。緑の旗をクリックしたときに自動で初期化されることはありません。そのため、もう一度プログラムを実行したときに、前の値が残っているため不具合が発生することがあります。

変数やリストを使うときは、必ず最初に初期化する必要があります。

[緑の旗がクリックされたとき] に得点を加えて表示したら終了する処理があります。緑の旗をクリックするたびに得点が増えていきます。これはバグです。

62

そのため変数を使うときは必ず最初に初期化します。

63

これは x座標 など、値を設定できるすべてのものに対して言えることです。

リストを作成する

リストを作成

[リストを作る] をクリックします。

53

リストの [名前] を入力し、[すべてのスプライト用] か [このスプライトのみ] を選択して [OK] をクリックします。

  • すべてのスプライト用:他のスプライトやステージでも同じリストを使用できます。
  • このスプライトのみ:このリストを作成したスプライトだけが使用できます。

通常は [このスプライトのみ] を選択します。他のスプライトでも使用できると、変更する必要のないところで、まちがって変更される危険があります。不具合やバグを発生させないためにも、必要なスプライトのみで使用できるべきです。

54

作ったリストのブロックが表示されます。[▼] をクリックしてリストを選択できます。

55

リストを削除

リストブロックの [▼] をクリックして削除したい [リスト「リスト名」を削除する] をクリックします。

56

リストが削除されます。そのリストが使用中のときは、コードのブロックも削除されます。

リストブロック

add-list

リスト の最後に を追加します。

追加した順番にリストに追加され、自動で 1 からの番号が振られます。

64

65

delete-list-index

リスト何番目 の項目を削除します。

存在しない番号を指定したときは何もしません。

次のようなリストがあります。

65

2 番目の項目を削除します。

66

2 番目の「ばなな」が削除され、3 番目の「ぶどう」が 2 番目になります。リストは必ず 1 からの連番になるため、途中の番号が抜けることはありません。

67

もう一度 2 番目の項目を削除すると「ぶどう」が削除され、1 番目の「りんご」だけになります。

delete-list-all

リスト からすべての項目を削除します。

リストを空にしたいときに使います。

68

insert-list

リスト何番目 に指定した を挿入します。

指定できる番号の範囲は 1 ~ 長さ + 1 です。リストに 3 個入っていたら 1 ~ 4 まで指定できます。存在しない番号を指定したときは何もしません。

次のようなリストがあります。

67

1, 2, 3 番目をそれぞれ指定して「ばなな」を挿入すると、次のようになります。

69

set-list

リスト何番目 を指定した に変更します。

存在しない番号を指定したときは何もしません。

次のようなリストがあります。

65

1 番目を「いちご」で置き換えると、次のようになります。

70

list

リスト のすべての値を結合して取得し、それをブロックの値に指定できます。

結合するときはスペースで区切られます。

次のようなリストがあります。

65

リストを表示します。

71

リストの項目と項目の間にスペースを入れて結合したものが表示されます。スペースを _ で表すと「りんご_ばなな_ぶどう」になります。

72

item-list-index

リスト何番目 の値を取得して、それをブロックの値に指定できます。

存在しない番号を指定したときは何も取得しません。

次のようなリストがあります。

65

1 番目なら「りんご」、2 番目なら「ばなな」、3 番目なら「ぶどう」を取得します。

index-list-name

リスト の中にある指定した の番号を取得して、それをブロックの値に指定できます。

指定した項目が存在しないときは 0 を取得します。

次のようなリストがあります。

65

「りんご」なら 1、「ばなな」なら 2、「ぶどう」なら 3 を取得します。

length-list

リスト の項目数を取得して、それをブロックの値に指定できます。

リストが空のときは 0 を取得します。

次のようなリストのときは 3 を取得します。

65

contains-list

リスト の中に指定した が存在するか判定します。

指定した値と同じ項目があると true を返します。

リストの中に「りんご」があったら「りんごあるよ」と言います。

73

show-list

リスト をステージに表示します。

リストをチェックしたのと同じように表示します。

hide-list

リスト をステージから隠します。

リストのチェックを外したのと同じように非表示にします。

74