提供:Japanese Scratch-Wiki

このきじは ひらがなでよめます。ひらがなでよむ
"ブロック"はこのページにリダイレクトされました。アカウントの凍結については、アカウントブロックをご覧ください。 Scratch 2.0のブロックについては、ブロック (2.0)をご覧ください。 ブロックプラグインについては、ブロックプラグインをご覧ください。

ブロックは、Scratchのプログラムを組み立てるために使う部品で、ジグゾーパズルのようにつなげて使用する。それぞれのブロックは、役割(「イベントを受け取る」「命令を出す」「値を返す」「真偽を返す」「スクリプトの終わりを表す」など)によって異なる形をしており、それぞれの形には、その形がピッタリはまる専用のスロット(ブロックを入れる場所)が存在している(これによって、プログラム上の構文エラーの発生を防いでいる)。なお、複数のブロックを組み合わせてひとまとめにしたものを、スクリプトという。この記事では特に言及していない場合、拡張機能のブロックは除外している。これについては拡張機能の記事を参照してほしい。

Scratch 3.0には、ブロックパレットに存在しないブロックや、機能を持たないブロックも含めて128個のブロックがある。(定義系のブロックも入れると134個)

ブロックには次の10種類のカテゴリが存在する。

動き見た目イベント制御調べる演算変数リスト[注釈 1]ブロック定義

ただし、Mod版Scratchには、その他のカテゴリやブロックを持つものもある。

形状別に見た場合は、Scratch全体で、ハットブロックが7個、C型ブロックが5個、値ブロックが33個、真偽ブロックが13個、キャップブロックが2個、スタックブロックが60個存在する。

ブロックの形状

ブロックの形は、全部で6種類存在する: ハットブロックスタックブロック真偽ブロック値ブロックC型ブロックキャップブロック

ハットブロック

ハットブロックのかたち
詳細は「ハットブロック」を参照

ハットブロック(Hat Block)とは、スクリプトを開始するブロックであり、上が丸く、下に出っぱりがある形状をしている(したがって、下にしかブロックをつなげられない)。ハットブロックは全部で7個あり、そのうち6個が「イベント」、1個が「制御」に含まれている。 次に、ハットブロックの例を示す:

@greenFlag が押されたとき::events hat

このスプライトが押されたとき::events hat

スタックブロック

スタックブロックのかたち
詳細は「スタックブロック」を参照

スタックブロック(Stack Block)は、各種の命令を実行するブロックであり、上にくぼみ、下に出っぱりがある形状をしている(したがって、上下にブロックをつなげられる)。スタックブロックは全部で60個あり、ブロック形状別に見た場合、もっとも数が多い。次に、スタックブロックの例を示す: (10)歩動かす ()と言う

真偽ブロック

真偽ブロックのかたち
詳細は「真偽ブロック」を参照

真偽ブロック(Boolean Block)は、真(True)または偽(False)のどちらかの状態を表すブロックである。たとえば誰かに、「2+2は4ですか?」という質問をすると、たずねられた人は「はい」「いいえ」のどちらかの答えを返すことになるが、真偽ブロックもこれと同じように真(はい)、偽(いいえ)のいずれかを返す。真偽ブロックは、全部で13個存在しており、六角形で表される。

値ブロック

値ブロックのかたち
詳細は「値ブロック」を参照

値ブロック(Reporter Block)は、数値や文字列を返すブロックである。たとえば誰かに「2+2はいくつですか?」と尋ねれば、「4」という答えが返ってくるだろうが、値ブロックもこれと同じように数値や文字列を答えとして返す。なお、質問できる内容は数式だけではない。値ブロックは、だ円形をしており、全部で33個存在する(値ブロックは、変数やリストを自分で作成した場合、理論上、無限に増やせるが、ここではそういったブロックは数に入れていない)。

C型ブロック

C型ブロックのかたち
詳細は「C型ブロック」を参照

C型ブロック(C Block)は、アルファベットの「C」の形をしたブロックであり、"ラップブロック"とも呼ばれる。C型ブロックには、間に挟まれたブロックを繰り返し実行したり、条件によってどの処理を実行するかを決める役割がある。C型ブロックは全部で5種類存在し、それらはすべて制御カテゴリに属している。C型ブロックの下部は、でっぱりがあるものとないものがある。

キャップブロック

キャップブロックのかたち
詳細は「キャップブロック」を参照

キャップブロック(Cap Block)は、スクリプトを停止するブロックで、上部にへこみがあり、下部は平らである(したがって、このブロックの下には他のブロックをつなげることができない)キャップブロックは全体で2個存在しており、どちらも制御カテゴリに属している。

ブロック一覧

Scratch 3.0には拡張機能とユーザーが定義したブロックを除けば全部で120個のブロックが存在する。

動きブロック

詳細は「動きブロック」を参照

動きブロックは、スプライトの動きをコントロールするブロック群である。Scratch 3.0には、全部で18個の動きブロックが存在する。 Scratch 3.0の動きブロックには、15個のスタックブロックが存在する:

Scratch 3.0の動きブロックには、3個の値ブロックが存在する:

  • x座標 — 選択中のスプライトのx座標
  • y座標 — 選択中のスプライトのy座標
  • 向き — 選択中のスプライトの向き

見た目ブロック

詳細は「見た目ブロック」を参照

見た目ブロック は、スプライトの見た目をコントロールするブロック群である。Scratch 3.0には、ステージ専用のブロックも含め全部で21個の見た目ブロックが存在する。

Scratch 3.0の見た目ブロックには、18個のスタックブロックが存在する:

Scratch 3.0の見た目ブロックには、値ブロックが3個存在する。

  • コスチュームの () — スプライトの現在のコスチュームのリストにおける番号または名前。
  • 背景の () — 現在の背景の番号または名前。
  • 大きさ — 選択中のスプライトの大きさ。

音ブロック

詳細は「音ブロック」を参照

音ブロックは、音とMIDI機能に関するコントロールを行うブロック群である。Scratch 3.0には9個の音ブロックが存在する。

Scratch 3.0の音ブロックには、8個のスタックブロックが存在する。

Scratch 3.0の音ブロックには、1個の値ブロックが存在する:

イベントブロック

詳細は「イベントブロック」を参照

イベントブロック はイベントをコントロールして、各種のスクリプト開始のきっかけとなるブロック群である。Scratch 3.0には、全部で8個のイベントブロックが存在する。 Scratch 3.0のイベントブロックには、次の6個のハットブロックが存在する:

Scratch 3.0のイベントブロックには、次の2個のスタックブロックが存在する:

  • () を送る — Scratchプログラム全体にメッセージを送る。送ったメッセージが指定された「() を受け取ったとき」ブロックがあれば、そのスクリプトを実行する。
  • () を送って待つ — 「() を送る」ブロックと同様だが、メッセージを送った結果開始したスクリプトの処理がすべて終了するまで、このブロックが置かれた側のスクリプトの実行を中断して待つ。

制御ブロック

詳細は「制御ブロック」を参照

制御ブロックはスクリプトを制御するためのブロック群である。Scratch 3.0には、11個の制御ブロックが存在する。

Scratch 3.0の制御ブロックには、1個のハットブロックが存在する:

  • クローンされたとき (スプライトのみ) — クローンが作成されるたびに指定したスクリプトを実行するが、スクリプト実行の対象となるのは、作成されたそのクローンだけである。

Scratch 3.0の制御ブロックには、3個のスタックブロックが存在する:

  • () 秒待つ — 指定された秒数、スクリプトの実行を止める。
  • () まで待つ — 与えられた条件が満たされるまで(Trueになるまで)、スクリプトの実行を止める。
  • () のクローンを作る — 指定したクローンを作成する。

Scratch 3.0の制御ブロックには、5個のC型ブロックが存在する:

  • () 回繰り返す — 指定した回数、処理を繰り返す。
  • ずっと — 永遠に処理を繰り返す。
  • もし () なら — 「もし () なら」で与えられた条件を確認して、条件が満たされていれば(Trueであれば)、中に入れられたブロックを実行する。
  • もし () なら、でなければ — 「もし () なら」で与えられた条件を確認して、条件が満たされていれば(Trueであれば)、中に入れられた1番目のブロックのまとまりを実行し、条件が満たされていなければ(Falseであれば)、2番目のブロックのまとまりを実行する。
  • () まで繰り返す — 条件が最初に満たされたとき、繰り返し処理を止める。

Scratch 3.0の制御ブロックには、2個のキャップブロックが存在する:

  • () を止める — ドロップダウンメニューから選択したスクリプトを停止する。なお、「スプライトの他のスクリプト」が選択されたときは、スタックブロックになる。翻訳上の都合で、実質は「を止める」までが引数となっている。
  • このクローンを削除する (スプライトのみ) — このスクリプトを実行したクローンを削除する。

調べるブロック

詳細は「調べるブロック」を参照

調べるブロックは、何らかの事象を検出するブロック群である。Scratch 3.0には、調べるブロックが18個存在する。

Scratch 3.0の調べるブロックには、3個のスタックブロックが存在する:

Scratch 3.0の調べるブロックには、5個の真偽ブロックが存在する:

  • () に触れた — 選択中のスプライトがマウスポインターや他のスプライトに触れているかどうかを判別して、その真偽を返す。
  • () 色に触れた — 選択中のスプライトが指定した色に触れているかどうかを判別して、その真偽を返す。
  • () 色が () 色に触れた — 選択中のスプライトから指定した色が、もう1つの色に触れているかどうかを判別してその真偽を返す。
  • () キーが押された — 指定したキーが押されているかどうかを判別して、その真偽を返す。
  • マウスが押された — マウスが押されているかどうかを判別して、その真偽を返す。

Scratch 3.0の調べるブロックには、10個の値ブロックが存在する:

  • () までの距離 — 選択中のスプライトからマウスポインターまたは指定したスプライトまでの距離を返す。
  • 答え — 最後に実行した「() と聞いて待つ」ブロックの入力結果。
  • マウスのx座標 — マウスポインターのx座標。
  • マウスのy座標 — マウスポインターのy座標。
  • 音量 — コンピュータのマイクが検知した音量の大きさ。
  • タイマー — Scratchプログラムを開始してから、または、タイマーがリセットされてからの経過時間。
  • () の () — ステージまたは指定したスプライトのx座標、y座標、向き、コスチューム、大きさ、音量 。
  • 現在の () — 選択した単位の時間情報(年、月、日、曜日、時、分、秒)。
  • 2000年からの日数 — 2000年1月1日からの経過日数。
  • ユーザー名 — 実行中のユーザーのユーザー名。

演算ブロック

詳細は「演算ブロック」を参照

演算ブロックは、数式、数学関数、文字列処理を行うブロック群である。Scratch 3.0には、18個の演算ブロックが存在する。

Scratch 3.0の演算ブロックには、7個の真偽ブロックが存在する:

  • () < () — 1つめの値が2つめの値より小さいかどうかを判別して返す。
  • () = () — 1つめの値と2つめの値が同じかどうかを判別して返す。
  • () > () — 1つめの値が2つめの値より大きいかどうかを判別して返す。
  • () かつ () — 2つの条件を連結する。1つめの条件と2つめの条件が両方とも真のとき、真を返す。
  • () または () — 2つの条件を連結する。1つめの条件と2つめの条件を別々に判断して、どちらかが真を返すとき、真を返す。
  • () ではない — 与えられた条件が偽のとき(条件が満たされないとき)、真を返す。
  • () に () が含まれる — 指定した文字列に指定した文字列が含まれるとき真を返す。

Scratch 3.0の演算ブロックには、11個の値ブロックが存在する:

  • () + () — 足し算の結果(和)
  • () - () — 引き算の結果(差)
  • () * () — かけ算の結果(積)
  • () / () — わり算の結果(商)
  • () から () までの乱数 — 指定した2つの値の範囲で乱数(ランダムな数)を返す。
  • () と () — 2つの値を接続する。
  • () の () 番目の文字 — 指定した位置の文字などを返す。
  • () の長さ — 指定した文字などの長さ。
  • () を () で割った余り — わり算の余り(剰余)
  • () を四捨五入 — 値を四捨五入して、一番近い整数を返す。
  • () の () — 指定した値の、絶対値(abs)、切り下げ、切り上げ、平方根(sqrt)、正弦(sin)、余弦(cos)、正接(tan)、逆正弦(asin)、逆余弦(acos)、逆正接(atan)自然対数(ln))、対数(log)、指数関数(e^)、底を10とする指数関数(10^)を返す。

変数ブロック

詳細は「変数ブロック」を参照

変数ブロック

詳細は「変数ブロック (サブカテゴリ)」を参照

変数ブロック は、値や文字列を持つブロックである。Scratch 3.0には、5個の変数ブロックが存在する。

Scratch 3.0の変数ブロックには、4個のスタックブロックが存在する:

Scratch 3.0の変数には、値ブロックが1個存在する:

  • () — その変数の値

リストブロック

詳細は「リストブロック」を参照

リストブロックリストを扱うためのブロック群である。これらのブロックは変数カテゴリに含まれている。Scratch 3.0には、全部で12個のリストブロックが存在する。

Scratch 3.0のリストブロックには、スタックブロックが7個存在する:

Scratch 3.0のリストブロックには、4個の値ブロックが存在する:

Scratch 3.0のリストブロックには、真偽ブロックが1個存在する:

  • () に () が含まれる — 要素の中に、指定したテキストと同じ値を持つものがあるかどうかを判断する。

ブロック定義

詳細は「ブロック定義 (カテゴリ)」を参照

ブロック定義 では、ユーザーが自分でカスタムブロックを定義して使うことができる。Scratch 3.0では、このためのブロックとして2種類が用意されている。

Scratch 3.0のブロック定義カテゴリでは、次のハットブロックを使用できる。

  • 定義 () —このブロックを使って、カスタムブロックを定義する。

Scratch 3.0のブロック定義カテゴリでは、次のスタックブロックを使用できる。

  • () — カスタムブロック(自分で定義したブロック)。


Scratchブロックプラグイン

詳細は「ブロックプラグイン (3.0)」を参照

Scratchブロックプラグインを使用すると、ディスカッションフォーラムScratch Wiki(その他のJavaScript製専用プラグインを組み込んだサイト)で、Scratchのブロックやスクリプトをそのまま表現することができる。 次に、このプラグインの使用例を示す:

@greenFlag が押されたとき::events hat
歩く
定義 歩く
//定義も再現可能
x座標を (0) 、y座標を (0) にする
ずっと
((-10)から(10)までの乱数)歩動かす
スタンプ
(1) 秒待つ

//コメント

その他のプログラミング言語におけるブロック

SandCastleIcon.png このページまたは節には、ScratchのWebサイト、Wikipedia、またはScratch Wiki以外へのリンクがあります。

リンク先のページが安全であると保障できないため、アクセスする場合は十分に注意してください。

ブロックを使用するプログラミング言語としては、Scratchは最初期に登場しており、ブロックを使うというアイディアはその他の多くの言語に影響を与えているMod版Scratchには、Scratchの本家であるMIT版では今のところ採用されていない、新しいブロックが多数含まれている(MITでは、MIT App Inventorのような、ブロックを使うプログラミング言語を他にも作成している)。さらに現在では、Stencyl など、全面的にブロックを使用する言語でありながら、リアルタイムアプリケーションやオンラインゲームにも対応したプロ志向の言語も登場している。また、より幼い子供にも理解しやすい言語として開発されたScratch Jrもブロックを使ったプログラミング言語である。

注釈

  1. ただし、ブロックパレットではリストブロックは変数ブロックに含まれている


Cookieは私達のサービスを提供するのに役立ちます。このサービスを使用することにより、お客様はCookieの使用に同意するものとします。