Scratchのブロックの種類と役割について

スクラッチでプログラミングをする際に重要なのがブロックパレットにあるブロックですが、ブロックには色々な形状があります。それぞれのブロックには役割があり、役割によってブロックの形状が異なります。こちらでは、ブロックの種類と役割についてまとめています。
1. ブロックとは

ブロックは、スプライトや背景に命令を与えるプログラムの部品になります。このブロックを組み合わせることで、スプライトを歩かせたり、回転させたりといったプログラムを作成することができます。
ブロックパレットの中には、以下の10個のスクリプトグループがあり、それぞれのグループに命令のブロックが配置されています。これらのブロックを使って、スクラッチでプログラミングを行います。
また、スクリプトグループは色毎に分けられており、簡単にどのようなプログラムのブロックか分かるよう工夫されています。
2. ブロックの形状
ブロックには、「ハットブロック」「スタックブロック」「真偽ブロック」「値ブロック」「C型ブロック」「キャップブロックの全部で6種類の形状があります。
ハットブロック

「ハットブロック(Hat Block)」は、そのそのスクリプト(ブロックの塊)を開始するためのブロックで、ハットブロックの下に組み合わされたブロックを実行する機能を持ちます。
ハットブロックは主にイベントブロックや制御ブロックで使われており、例えばの中にある
、
や
の中にある
がハットブロックになります。
ハットブロックの形状は上部が丸い形で下部は凸の形状になっており、ハットブロックの上にはどのブロックも配置することはできません。
ハットブロックはイベントブロックに6個、制御ブロックに1個、その他ブロックの「PicoBoard」「LEGO WeDo 1.0」「LEGO WeDo 2.0」の拡張機能に4個の合計11個あります。
スタックブロック

「スタックブロック(Stack Block)」は、それぞれの命令を実行するブロックで、色々なブロックと結合することができます。
スタックブロックの形状は上部が凹で下部が凸の形状をしており、スタックブロックの上下どちらにも別のブロックを結合させることができます。
スタックブロックは、他の形状のブロックの中でも一番多く全部で77個あり、このスタックブロックがないスクリプトグループは、と
の拡張機能のPicoBoardブロックのみとなります。
真偽ブロック

「真偽ブロック(Boolean Block)は、真(True)または偽(False)のどちらかの状態を表すブロックになります。真偽というのは、条件にあっている値が正しければ、真(True)で、間違っていれば偽(False)と表現されます。
真偽ブロックは、主に条件判断で利用されることが多いですが、具体的な使い方についてはゲームの作り方やプロジェクト(作品)制作で説明していますので、そちらをご確認ください。
真偽ブロックの形状はスタックブロックのような凹凸はなく、六角形の形状をしています。凹凸がないので上下にブロックの結合はできませんが、の中にある
の六角形の穴(スロット)にはめ込んで使用することができます。
他にも六角形の穴(スロット)以外にの中にある
の文字列を入力する部分にはめ込んだり、
の中にある
の●部分の数値として利用することもできます。
真偽ブロックには「特定の状態を調べるもの」と「値を比較するもの」の2つの種類があり、の中にある
などが特定の状態を調べる真偽ブロックで、
の中にある
、
、
などが値を比較する真偽ブロックになります。
Scratch 2.0では、真偽ブロックは12個存在します。
値ブロック

値ブロック(Reporter Block)は、数値や文字列といった何らかの値を維持するブロックになります。例えば、の中にある
は、マウスの現在のx座標の値が入っており、ブロックパレット上のブロックをクリックすると現在のx座標の値が表示されます。
値ブロックの形状は楕円形の形状をしています。こちらは文字列や数値を入力する部分にはめ込むことができます。
Scratch 2.0では、値ブロックは34個存在します。
C型ブロック

C型ブロック(C Block)は、このブロックの中に他のブロックを入れて使用するブロックになります。条件によって間に挟まれたブロックを実行させたり、指定した回数繰り返したりすることができるブロックで条件分岐や繰り返し処理(ループ処理)で利用されます。
C型ブロックの数は全部で5個存在し、そのすべてが制御ブロックに属します。
C型ブロックの形状は、アルファベットの「C」と同じような形をしていることからC型と呼ばれていますが、ラップブロックと呼ばれることもあります。
C型ブロックの中でも若干形状が異なるものがあり、例えばのように上下に凸凹があり、上下にブロックを結合できるものや、
のように下に結合部がなく、下にブロックを置くことができないものがあります。
キャップブロック

キャップブロック(Cap Block)は、実行中の指定したプログラムを停止して、意図しない動作を予防したり、意図的に停止させるブロックです。停止するプログラムはすべてを停止するのではなく、特定のスクリプトだけを停止したり、プロジェクトすべてを停止するなど指定することもできます。
キャップブロックの形状は、上部が凹があり下部には結合部がない形状をしており、上にしかブロックを結合させることができません。