サイトについて      連絡先   検索

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

はじめに

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

変数に名前を付け、それにあった値を入れ、必要なときにそれを取得する。これが変数の使い方です。一般的なプログラミング言語で、最もよく使うものです。

リストには変数をいくつでも追加できます。それを番号で指定します。

変数ブロックとは

変数とリストが使えます。

変数とは

変数に名前を付けて1ネコのように、数値や文字列などの値を 1 つだけ入れられます。値の取得と設定は何度でもできます。

言葉で説明すると難しく感じるかもしれませんが、みなさんが既に知っている思う x座標の設定と取得を思い出してみてください。

18

x座標という名前の変数を作ると次のようになります。

19

どちらも同じもののように見えます。実際に何も違いはありません。ただ、変数にはスプライトとの関係がないので、10 などを設定してもスプライトが移動することはありません。

このように変数に名前を付けて、それにあった値を入れる。これが変数の使い方です。

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

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

リストとは

リストは、複数の変数を入れるカバンのようなものです。リストに入っている変数のことをここでは「項目」と呼びます。

31

各項目の設定や取得は次のように番号で指定します。名前はありません。

25
27

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

変数

変数を作成する

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

1

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

[すべてのスプライト用] を選択すると、他のスプライトからその変数にアクセスできます。

[このスプライト用] を選択すると、その変数を作成したスプライトだけがアクセスできます。

他のスプライトと変数を共有すると、意図しないところで変数の値が変更される危険があります。不具合を発生させないためにも、必要な時以外は [このスプライト用] を選択します。

2

変数を作成すると、次の変数ブロックが表示されます。

変数ブロック

変数に値を設定します。[▼] をクリックして設定する変数を変更できます。値を初期化するのに使います。

3

実行するたびに、この変数に 1 を加えていきます (1, 2, 3 …) 。変数の値が文字列のときは 1 になります。

4

次のようにすると、マウスカーソルに向かって歩きます。スプライト 2 に触れると得点が 1 ずつ増えていきます。

8

変数の値を取得して、それをブロックの値に指定できます。チェックすると変数の値がステージに表示されます。

5

次のようにすると、得点が 10 より大きい時に「勝った!」と表示します。

9

変数をチェックしてステージに値を表示します。

6

変数のチェックを外してステージから値を隠します。

7

変数を表示する。

10

変数を隠す。

11

変数の注意点

次のように [緑の旗がクリックされたとき] に [得点] に 1 を加えていく処理があります。

14

初めて実行したときは1と表示します。

15

もう一度実行すると今度は2と表示します。

16

これはプログラムが終了しても変数の値が残っているためです。一般的なプログラミング言語ではプログラムを終了したら変数の値は初期化されます。しかしスクラッチでは残るため、これが原因で不具合が発生することがあります。

このため、変数を使うときは必ず値を初期化します。

17

こうすれば何度プログラムを実行しても正しい値を表示します。

15

次に紹介するリストにも同じことが言えます。

リスト

リストを作成する

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

20

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

[すべてのスプライト用] を選択すると、他のスプライトからそのリストにアクセスできます。

[このスプライト用] を選択すると、そのリストを作成したスプライトだけがアクセスできます。

他のスプライトとリストを共有すると、意図したいところでリストの値が変更される危険があります。不具合を発生させないためにも、必要な時以外は [このスプライト用] を選択します。

21

リストを作成すると、次のリストブロックが表示されます。

リストブロック

リストの最後に値を追加します。[▼] をクリックして設定するリストを変更できます。

22

次のようにすると、追加した順番にリストに追加されていきます。

32 31

次のブロックと同じ動作をします。

33

指定した番号の項目をリストから削除します。[すべて] を選択するとリストを空にします。

23

リストを初期化するときは [すべて] を指定します。

43

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

31

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

34

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

35

もう一度 2 番目の項目を削除すると 2 番目の「ばなな」が削除され、2 番目がなくなります。

36

もう一度 2 番目の項目を削除すると 2 番目の項目が存在しないので、エラーになり何もしません。

指定した番号に項目を挿入します。指定できる最大の番号はリストの項目数 + 1です。リストに 3 個入っていたら 1 ~ 4 まで指定できます。

24

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

35

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

37

指定した番号の項目を編集します。指定した番号が存在しないときは何もしません。

25

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

31

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

38

リストのすべての値を結合して取得し、それをブロックの値に指定できます。チェックするとリストの中身がステージに表示されます。

26

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

31

リストを表示します。

39

リストの項目をスペースで区切って結合された結果が表示されます。

40

リストの指定した番号の値を取得して、それをブロックの値に指定できます。指定した番号が存在しないときは何もしません。

27

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

28

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

31

リストに指定した値が存在するか判定します。存在するときは条件を満たします。

29

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

31

「りんご」が 1 番目にあるので条件を満たします。

41

「いちご」はどこにもないので条件を満たしません。

42