ブロックの形とその機能:Scratch3.0

Scratch 3.0のブロックの形とその機能についてお話しします。

【目次】
1.ブロックの分類方法
2.6種類のブロックの形
2.1.ブロックの形➀スタックブロック
2.2.ブロックの形➁値ブロック
2.3.ブロックの形➂ハットブロック
2.4.ブロックの形➃真偽ブロック
2.5.ブロックの形➄C型ブロック
2.6.ブロックの形➅キャップブロック
3.まとめ

1.ブロックの分類方法

Scratchのブロックには、2つの分類方法があります。
1つはカテゴリーによる分類で、もう1つはブロックの形による分類です。
同じカテゴリーに属するブロックは同じ色で統一され、同じ機能に属するブロックは同じ形をしています。

今回は後者のブロックの形について説明します。

2.6種類のブロックの形

Scratchのブロックには、6種類の形があります。

➀スタックブロック
➁値ブロック
➂ハットブロック
➃真偽ブロック
➄C型ブロック
⑥キャップブロック

2.1.ブロックの形➀スタックブロック

スタックブロックは、長方形の形をしていて、上下に凹凸が付いている形なので、その上下に他のブロックをつなげることができるブロックです。
例として、下図のスタックブロック、[動き]カテゴリーの[〇歩動かす]ブロックをご覧ください。

スタックブロックは、Scratchのブロックの中で一番多い形です。

スタックブロックは、構造化プログラミングの3つの制御構造である順接、反復、分岐の中の、順接(1つ1つ上から下に順番に実行)を実現するものです。

例として、下図のスタックブロック3つでできたスクリプトをご覧ください。

3つとも[動き]カテゴリーのブロックで、上から順に、次のことを行います。

1. [x座標を〇、y座標を〇にする]ブロック
このブロックは、対象となるスプライトを座標(〇,〇)に位置付けます。今、引数〇の値は2つとも0なので、座標(0,0)に位置付けます。

2.[〇歩動かす]ブロック
このブロックは、対象となるスプライトを〇歩分動かします。今、引数〇の値は10なので、座標(0,0)からデフォルトの方向に10歩分動かします。

3. [●へ行く]ブロック
このブロックは、対象となるスプライトを●で示される場所に位置付けます。
今、●はデフォルトの「どこかの場所」となっているので、ステージ内の任意の場所に移動します。

基本のカテゴリーでは、スタックブロックは[動き]、[見た目]、[音]、[イベント]、[制御]、[調べる]、[変数]の各カテゴリーにあり、[演算]と[ブロック定義]カテゴリーにはありません。

2.2.ブロックの形➁値ブロック

値ブロックは、楕円形のブロックです。
例として、下図の値ブロック、[動き]カテゴリーの[x座標]ブロックをご覧ください。

値ブロックは、他の形のブロックの楕円の引数の部分にはめて利用します。
例として、下図の[見た目]カテゴリーの[〇と言う]ブロックの〇に、値ブロックである[動き]カテゴリーの[x座標]ブロックをはめたスクリプトをご覧ください。

自分で生成する変数以外の値ブロックは、システムが用意している変数です。

基本のカテゴリーでは、値ブロックは[動き]、[見た目]、[音]、[調べる]、[演算]、[変数]の各カテゴリーにあり、[イベント]、[制御]、と[ブロック定義]カテゴリーにはありません。

2.3.ブロックの形➂ハットブロック

ハットブロックは、つば広帽の形のブロックです。
例として、下図のハットブロック、[イベント]カテゴリーの[緑の旗が押されたとき]ブロックをご覧ください。

ハットブロックは、下の部分が凸型になっているので、その下に他のブロックをつなげることができます。
一方、ハットブロックは、上の部分が丸くカーブしていていて凹凸もないので、上に他のブロックをつなげることができません。
ハットブロックはその形からも、また、帽子という頭のてっぺんに乗せるものという意味からも、スクリプトの先頭につけるためのブロックであることがわかります。

1つ1つのハットブロックは、特定のイベントと呼ばれるきっかけで反応し、そのハットブロックを先頭に持つスクリプトの実行を始める機能を持ちます。
イベントとは、プログラムの実行時に、ユーザーがコンピューターに何らかの操作を行ったとき(キーを押した、クリックした)や、コンピューター自身の環境が変化したとき(マイクから大きな音を拾った)などのことです。

基本のカテゴリーでは、ハットブロックは[イベント]と[制御]の各カテゴリーにあり、[動き]、[見た目]、[音]、[調べる]、[演算]、[変数]、[ブロック定義]カテゴリーにはありません。

2.4.ブロックの形➃真偽ブロック

真偽ブロックは、そろばんの珠の六角形を横長にした形のブロックです。
例として、下図の真偽ブロック、[調べる]カテゴリーの[●に触れた]ブロックをご覧ください。

真偽ブロックは、他のブロックの六角形や楕円形の引数の部分にはめて利用します。
例として、下図のスクリプト、[制御]カテゴリーの[もし◇なら]ブロックに[調べる]カテゴリーの[●に触れた]ブロックをはめたものをご覧ください。

真偽ブロックの値は、その条件が真のとき「true」、または、数値の1、偽のとき「false」、または、数値の0となるブロックです。

本来、真偽ブロックは真偽を判定するために他のブロックの六角形の引数の部分にはめるブロックとして存在しますが、真偽ブロックは楕円形の引数の部分にはめて利用することもできるようになっているので、次のようなテクニカルな使い方もできます。
真偽ブロックを、数値を期待する引数の楕円の中にはめたときは真偽の値の1か0が、また、文字列を期待する引数の楕円の中にはめたときは真偽の値の「true」か「false」が、自動で選択されて利用されます。

基本のカテゴリーでは、真偽ブロックは[調べる]と[演算]の各カテゴリーにあり、[動き]、[見た目]、[音]、[イベント]、[制御]、[変数]、[ブロック定義]のカテゴリーにはありません。

また、六角形の引数をもつブロックは、[制御]と[演算]カテゴリーにあります。

2.5.ブロックの形➄C型ブロック

C型ブロックは、[制御]カテゴリーの2,3,4,5,7番目のブロックです。
例として、下図のC型ブロック、[制御]カテゴリーの2番目のブロックである[〇回繰り返す]ブロックをご覧ください。

2,3,4,7番目のブロックを見てわかる通り、C型ブロックはアルファベットのCの形をしたブロックです。
なお、5番目のブロックはC型が上下に2つくっついた形なので、私にはアルファベットのEの形に見えますが、このブロックもC型ブロックの1つとしてカウントされています。

C型ブロックは、Cの内側に0個以上複数のブロックをつなげて入れることができ、C型ブロックごとに、特定の条件によって、それらのまとまりの実行を行ったり行わなかったりするものです。

C型ブロックは、構造化プログラミングの3つの制御構造である順接、反復、分岐の中の、反復([制御]カテゴリーの2,3,7番目のブロック)と分岐(同4,5番目のブロック)を実現するものです。

2.6.ブロックの形⑥キャップブロック

キャップブロックは、[制御]カテゴリーの8番目と11番目(最後)のブロックです。
例として、下図のキャップブロック、[制御]カテゴリーの[◆]ブロックをご覧ください。

8番目と11番目のブロックを見てわかる通り、形はスタックブロックに非常によく似ていますが、スタックブロックの下の部分が凸上になっているのに対して、キャップブロックの下の部分は直線になっているところが違いです。
キャップブロックの名前の由来は、キャップブロックの上が凹んでいて、ペットボトルのキャップのような形になっているところです。

キャップブロックは、下の部分が直線になっているため、この下に他のブロックをつなげることができません。
そのことから、キャップブロックは、スクリプトの最後に実行するブロックになり、その役割は、最後に行う仕事に即したものとなっています。

3.まとめ

ブロックは、色で区別したカテゴリー分けとは別の分類方法として、その形によって機能の分類ができます。
学習方法としては、ある系統の処理、例えば、動きを中心としたプログラミングを学習したければ、[動き]カテゴリーに注目して学習します。
例えば、イベントの制御を中心としたプログラミングを学習したければ、ハットブロックに注目して学習します。

自分の目的に合った切り口から学習を進めてくださればと思います。

コメントを残す