2020年からの小学校でのプログラミング教育必修化に伴って、プログラミングへの関心が高まっています。

そして、教育用のプログラミング言語として人気があるのが、スクラッチ(Scratch)で、色々なゲームや作品を作ることができます。

でも、ゲーム作りだけでなく、プログラミングの基本や考え方も学んでみたいというお子さんや、学ばせたいという親御さんもいらっしゃるのではないでしょうか?

そこで、学びプラスでは「スクラッチで学ぶプログラミング」シリーズを公開中です!

今回は、ゲーム作りには欠かせない、「繰り返し」「ループ」について、解説していきたいと思います。

今回の内容は動画でも公開中!

【スクラッチ】繰り返しやループって何?

「繰り返し」というのは、同じ動作を何回も繰り返すことです。

そして、プログラミングでは、「繰り返し」のことを「ループ」とも言います。

(参考ですが、JavaやC言語のようなプログラミング言語では、「For文ループ」と言われることがあります)

スクラッチには、このような繰り返しのブロックがあります。

これらのブロックを使うことで、同じ動作を繰り返しさせることができます。

そのため、同じ動作を何回も書く必要がなくなり、プログラミングがシンプルになります。

スクラッチでは、「ずっと」繰り返すブロックと、「ある回数分」繰り返すブロックと、「ある条件になるまで」繰り返すブロックの3種類のループ方法があります。

では、それぞれのループについて見ていきましょう!

スクラッチでのループ① ずっと繰り返す

ゲームでもよく使われるのが、この「ずっと」繰り返すブロックです。

このブロックの中にある処理は、ずっと繰り返されます。

プログラミング用語では、「無限ループ」とも言われます。

この中の処理は何回でも繰り返されるので、ずっと ブロックの下には、別のブロックをつなげることはできません。ずっと ブロックの中の処理が終わることがないためです。

では、プログラムの動きを見ていきます。

まず、プログラムの処理は上から下に順番に実行されますが、ずっと ブロックでは、①が実行されて、②でまた処理が上に戻ってきます。これが、ずっと繰り返されています。

次に使用例を見たいと思います。

「動き」カテゴリから、10歩動かす ブロックを移動してきました。

10歩動かしたら、処理が上に戻り、10歩動かし、また上に戻り10歩動かし、、、となりずっと10歩動き続けます。

また、「音」カテゴリと合わせると、ゲームが終了するまで、音を鳴らし続けることができるので、ゲームのBGMでも使うことができます。

しかし、ずっと無限に動き続けるとゲームが終わらないので、ずっと ブロックを終わらせる方法があります。

まず一つ目が、ストップボタン を押すこと。

二つ目が、~を止める ブロックを使って処理を止めること。

「制御」カテゴリの「すべてを止める」ブロックを下の例のように使うと、もし残り時間が0になったらゲームが終了するようにできます。

スクラッチでのループ② 「ある回数分」繰り返す

このループは、決めた回数を繰り返すときに使います。

そして、繰り返しが終わると、次のブロックが実行されていきます。

例で、プログラムの動きをみて見ていきます。

下の図では、10歩動かす ブロックを10回繰り返したあと、こんにちは!と言う ブロックが実行されます。

なお、繰り返す回数は、自分で決めることができます。

また、繰り返しのブロックの中に、繰り返しのブロックを配置することもできます。

下の図でいくと、「10歩動かす」は何回実行されるでしょうか?

正解は、100回実行されます。

中に入っている10回繰り返す ブロックを10回繰り返すことになるので、10×10で100回実行されます。

このような、繰り返しの中に、繰り返しを入れることをプログラミング用語では、「ネスト」「入れ子」と言ったりします。

スクラッチでのループ③ 「ある条件になるまで」繰り返す

このループは、指定した条件になるまで、その中の処理を繰り返します。

その条件になるまで同じ処理を繰り返したいときにこのループが使われます。

指定する条件は色々と変えることができ、「調べる」や「演算」のブロックをセットすることができます 。

下の例では、スペースキーが押されるまで、10歩動き続けます。

条件が成立したらループが終わり、処理が下に進んでいきます。

スクラッチのループを使ったゲーム例

これまで解説してきたループの仕組みを使ったゲームを紹介します。

雪が降るシミュレーションプログラムとなります。

プログラムは以下でも公開中!

雪が降るプログラムへ

スクラッチのプログラムの中身

ループを使っているのは、下の赤い部分になります。

ずっと ブロックでクローン(ここでは雪)を作り続けていきます。
(クローンとは、自分と同じスプライトを作る機能です)

また、y座標 < -180 まで繰り返す ブロックで、雪が地面に付くまで落ちてくるようにしています。

【スクラッチ】繰り返しやループをうまく使ってみよう

今回は、色々な繰り返しやループを解説してきました。

繰り返しやループを使うことで、同じ処理を何度も書く必要がなくなり、プログラムの中身がシンプルになります。

特に、ゲームではループを使うことも多いので、ループの考え方や、プログラムの書き方などに慣れていくと良いと思います!