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 まで繰り返す ブロックで、雪が地面に付くまで落ちてくるようにしています。
【スクラッチ】繰り返しやループをうまく使ってみよう
今回は、色々な繰り返しやループを解説してきました。
繰り返しやループを使うことで、同じ処理を何度も書く必要がなくなり、プログラムの中身がシンプルになります。
特に、ゲームではループを使うことも多いので、ループの考え方や、プログラムの書き方などに慣れていくと良いと思います!