プログラミング言語Scratch
前回はScratchのプログラミング画面で「イベント」のブロックを解説しました。

今回は「制御」のブロックを解説していきたいと思います。
「制御」のブロックは何回も繰り返したり、条件によって場合分けする際に用いるブロックです。
ということでまずは「制御」のブロックの場所からです。

この制御のブロックは橙色で統一されています。
それではいってみましょう。
X秒待つ
これはそのまま、ブロックとブロックの間で何秒間か待つブロックになります。

このブロックに「緑の旗が押されたとき」と「X歩動く」のブロックを組み合わせて試してみましょう。


緑の旗をクリックすると、前に100歩進んで、1秒待った後、後ろに100歩戻ります。
ちなみに「1秒待つ」のブロックを使わないとこうなります。


緑の旗を押しても何も起こっていないように見えますが、実は前に100歩進んで、すぐに後ろに100歩戻っています。
一瞬で動いているので、動いているようには見えないのです。
X回繰り返す
次は「X回繰り返す」というブロックで、繰り返しの作業に使うブロックです。

これまでとは違う形をしていますが、上下にブロックを繋げられるだけではなく、中にもブロックを入れることができます。
つまりこんな感じ。

このブロックを実行すると、
- 「緑の旗が押されたとき」このブロックが実行されます。
- 「20歩動かす」と「0.5秒待つ」が「5回繰り返す」
- 「5回繰り返し」終わった後、「-100歩動かす」。
ということでこんな感じで動きます。

ちなみにこのブロックのかたまりを作るにはこんな感じです。

順番は特に問題ありませんが、「X回繰り返す」の中に入れる場合は、一つのブロックを入れた後、次のブロックを近づけると枠が開くので、新たに入れ込むことができます。
ずっと
「ずっと」のブロックは、このブロックの中に入っているブロックをプログラムが停止するまで繰り返すブロックです。

このブロックも先ほどの「X回繰り返す」ブロックと同じように上下にブロックをつなげるだけでなく、中にブロックを入れて使用します。
ということでこんな感じでブロックを組んでみました。

これを「緑の旗」をクリックして実行すると、その右の赤の停止ボタンを押すまでずっと「10歩動かす」と「0.5秒待つ」が繰り返されます。

もしXなら
次のブロックは「もしXなら」というブロックです。

これは条件によって動作を変える際に使うブロックになります。
このブロックの「もし」と「なら」の間にダイヤモンド方のような穴が空いています。
つまりここに条件のブロックをはめるわけです。
その条件のブロックはいくつかのカテゴリにあるのですが、今回は「調べる」の中の「マウスのポインターに触れた」という条件のブロックを使ってみましょう。


ということでこんな感じでブロックを組んでみました。

- 「緑の旗」が押されるとプログラムが実行される
- 「ずっと」のブロックで、プログラムが待ち状態になる
- 「もし」「マウスのポインターがキャラクターに触れた」ら、「10歩動く」
試してみるとこんな感じになります。

もしXなら、でなければ
次のブロックは「もしXなら、でなければ」というブロックです。

先ほどの「もしXなら」に加えて、そうでない場合の処理を追加することができます。
ということでこんな感じでブロックを組んでみました。

- 「緑の旗」が押されるとプログラムが実行される
- 「ずっと」のブロックでプログラムが待ち状態になる
- 「もし」「マウスのポインターにキャラクターが触れたら」「10歩動く」
- 「マウスのポインターにキャラクターが触れて」いなかったら、「右に15度回す」
ということでこんな感じの動きをします。

Xまで待つ
次のブロックは「Xまで待つ」というブロックです。

これはある条件がくるまで待つというブロックになります。
ということでこんな感じでブロックを組んでみました。

- 「緑の旗」が押されるとプログラムが実行される
- 「ずっと」のブロックでプログラムが待ち状態になる
- キャラクターに「マウスのポインターが触れ」たら「100歩動く」
ということでこんな感じの動きになります。

Xまで繰り返す
次は「Xまで繰り返す」というブロックで、ある条件がくるまである動作を続けたいときに使うブロックです。

今回はこんな感じでブロックを組んでみました。

- 「緑の旗」が押されるとプログラムが実行される
- キャラクターが「15度回る」が繰り返される
- キャラクターに「マウスのポインターが触れる」と「15度回す」が止まる
ということでこんな感じになります。

止める
次は「止める」というブロックです。

最初は「全てを止める」となっていますが、クリックしてみると「このスクリプトを止める」、「スプライトの他のスクリプトを止める」というのにも使えるようです。

今回は「すべてを止める」というのを試してみましょう。
また今後使うようなら、別の機会に他の二つも解説したいと思います。
ブロックはこんな感じで組んでみました。

- 「緑の旗」が押されるとプログラムが実行される
- 「ずっと」のブロックでプログラムが待ち状態になる
- キャラクターに「マウスのポインターが触れ」ていなければ、「15度回す」が繰り返される
- キャラクターに「マウスのポインターが触れた」ら、プログラム全体が「止まる」
ということでこんな感じ。

注目するのはマウスのポインターがキャラクターに触れた時の「緑の旗」とその横の「停止ボタン」です。
マウスのポインターがキャラクターに触れると「停止ボタン」の色が薄くなって押せなくなっています。
つまりこのプログラムが停止した状態に変わったということです。
クローンされたとき、Xのクローンを作る、このクローンを削除する
最後は三つ一気に解説していきます。

この三つというのは「クローン」と呼ばれるものに関連したブロックです。
そしてクローンというのは、「複製」ということで、
- クローンされたとき = キャラクターが複製されたとき
- Xのクローンを作る = 複製を作る
- このクローンを削除する = この複製を削除する
と言い換えることができます。
ちょっと複雑ですがこんなブロックを組んでみました。

- 「緑の旗」が押されるとプログラムが実行される
- キャラクターを「10歩動かす」「15度回す」「自分自身のクローンを作る」が60回繰り返される
- クローンが作成されると、「1秒待った」のち「そのクローンを削除する」

このプログラムだと、「10歩進んで」「15度回った」ところに「クローンが作成」されます。
そしてそのクローンが「1秒待って」「削除される」ことで、キャラクターが動いた軌跡みたいなものが作られるということです。
これで「制御」のブロックの解説は終わりです。
例を一つずつしかお見せしていないので、まだまだ分かりづらいところもあるかもしれません。
それはまた別にプログラムを作っていく段階で解説していきたいと思います。
しかし今回でいくつもブロックを組み合わせることになり、グッとプログラムっぽくなったのではないでしょうか。
次回は「調べる」を飛ばして、「演算」のブロックを解説したいと思います。

ということで今回はこんな感じで。
コメント