スポンサーリンク
Scratch

【スクラッチ(Scratch)プログラミング入門】制御部品の使い方

Scratch

「制御」部品の使い方を解説します。
プログラムを作る中で一番大切な部品と言えるでしょう。
この部品を使いこなせるようになることがプログラミング上達のカギです。
「条件分岐」や「繰り返し」処理を組み合わせて、いろんな動きをするプログラムを作っていきます。

スポンサーリンク

制御コード

制御コードはプログラムでとても重要な部品です。
重要な部品は繰り返し処理(ループ処理)と条件分岐です。

繰り返し処理はこの3種類です。

条件分岐はこの2つです。

待つ(スリープ)

指定した秒数だけプログラムを停止します。
つかいどころはちょっと難しいです。
タイマーで時間が経過したらイベントを起こす場合。
他のプログラムを並列で動かして、待ち合わせをする場合。
等に使います。

繰り返し処理(ループ処理)

プログラミングの技法で繰り返し(ループ)処理というのがあります。
今回はどのような処理なのかを学びます。

繰り返し(ループ)処理というのは、同じ動作を繰り返し何回か行うことを指します。
指定した回数の10回同じ動作を繰り返すとか、永遠(無限)に同じ処理を繰り返すなどです。
以前の正三角形を描くプログラムを思い出してみましょう。

同じパターンの動作を何回か繰り返していることに気づくでしょうか。

・線を引く
・回転する
という動作を3回繰り返して三角形が描けていることに気づいたでしょうか。
(3回目の回転は無くてもよいですけどね)

繰り返し(ループ)処理のプログラムを作ってみよう

これを繰り返し(ループ)処理を使わずにプログラムにすると次のようになります。

これに繰り返し(ループ)処理を使ってみましょう。

・100歩動かす
・120度回す
を3回組み合わせていたのを1回に短縮することができました。
代わりに「3回繰り返す」という部品が増えています。
これでは、あまり楽になった気がしませんが、5角形や10角形などの多角形を描く場合は断然手間が減ります。

試しに5角形を作ってみましょう。
ループを使わない場合このようになります。

同じ動作を5回組み合わせました。
このプログラムの実行結果はこのようになります。

では、これをループを使って作り直してみましょう。

いかがでしょうか。
繰り返しの回数と回転する角度が変わっただけです。
ループ処理を使えば同じプログラムを少し変えるだけです。
作成する手間も変わりませんね。

条件分岐


条件によって実行するプログラムが分岐(別れる)という仕組みのことです。
こっちのプログラムを実行したい場合、あっちのプログラムを実行したい場合のようなシーンで使います。

身近なところで条件分岐を使っています。
例えば、YesNoチャートです。
質問に対して「Yes」「No」で回答していくと最後に性格診断などにたどりつくやつです。

この例では「日本に国籍がありますか?」という質問に「はい」か「いいえ」で答えます。
これをプログラムにすると、
・「はい」の場合「あなたは日本人です」と表示するプログラムを実行する。
・「いいえ」の場合「あなたは外国人です」と表示するプログラムを実行する。
の様に、条件によって実行するプログラムが変わります。
これが条件分岐です。

条件分岐のプログラムを作ってみよう

国名を入力して、「日本」と入力されていたら「あなたは日本人です」と表示する。
「日本」以外が入力されていたら「あなたは外国人です」と表示するプログラムを作ってみます。

完成形はこんな感じです。

条件分岐は次の部品のいずれかを使います。

「もし ① なら ②」または「もし ① ならば ② でなければ ③」の部品です。

この部品はどのように使うのでしょうか。
濃いオレンジの六角形(①)に「演算」グループの部品をはめ込むことができます。

この演算の部品の式が成立するときに「もし・・・なら」の下にある空欄部分(②)のプログラムが実行されます。
たとえば「〇>50」という部品がありますね。
〇の部分に入る数字が50未満なら式が成立するので空欄(②)のプログラムが実行されることになります。
〇の部分に入る数字が50以上で式が成立しない場合は空欄(②)のプログラムは飛ばして、この部品の下に続くプログラムが実行されます。

「もし ① ならば ② でなければ ③」 の部品も同じです。
式が成立するなら②のプログラムが実行されて、不成立の時は③が実行されます。

条件を満たすまでプログラムを停止する

六角形の部分に当てはめた条件を満たすまでプログラムを停止する部品です。
例えば、プログラムを開始して50秒経過するまで待つプログラムを作ると次の様になります。

この部品をうまく活用できるシーンは、並列で他のプログラムが実行されているか、利用者が何か操作をするのを待つ場合でしょう。

レベルアップ小話

この部品は他の部品でも代用できることに気づくでしょうか。

この部品でも代用できます。
条件を満たすまで、空回りを続けるプログラムを作ればいいのです。
と実際に同じ動きをしているはずです。

プログラムを停止する

プログラムの実行を途中で停止(終了)するための部品です。

・すべてを止める
すべてのプログラムを停止します。

赤丸の停止ボタンを押したのと同じ効果です。
・このスクリプトを止める
今実行中のプログラムの流れだけを止めます。
他に並列で実行しているプログラムは停止しません。
・スプライトの他のスクリプトを止める
今実行しているスプライト以外のプログラムを停止します。

クローン

スプライトのコピーを作ります。

1つのスプライト1から大量の猫がコピーされています。

正直なところ、使いどころはよくわかりません。
このような機能があることを紹介しておきます。

コメント

タイトルとURLをコピーしました