2016.06.03スクラッチジュニアで始める5歳からのプログラミング
スクラッチジュニアで始める5歳からのプログラミング:「くりかえし」を理解する
みなさま、こんにちは。いかがお過ごしでしょうか。前回は、並列処理を理解するというタイトルで書かせていただきました。今回は、プログラミングの考え方の中でも重要な内容の一つである、「くりかえし」に関して述べていきます。コンピュータの強みの一つが、同じ動作を何回もすることができることです。人間が同じことを何回もするように指示されたら、おそらくほとんどの人は途中で何かしらの間違いをするはずです。ところが、コンピュータにかかれば同じことをすることは朝飯前です。(コンピュータは食事しませんが。。。)この同じをくりかえすのを「ループ(Loop)」といいます。スクラッチジュニアでループを実現するためには2種類の方法があります。それを1つずつ見ていきましょう。
くりかえし回数を指定する方法
前回のコウモリとネコのプログラムを思い出してください。(動画でやったので、最後の3つ目の最後を見ていただけると図のようなプログラムが出てきます。)コウモリの動きを作るときに、上下に揺れる動きと、回転を右回り、左回りで行う動きの2つを組み合わせてゆらゆらを作っていました。ただ、見ていただければわかりますが、同じことを何回もしています。この部分をよりブロックが少なくなるように改善してみましょう。(このようなコード(ブロック)を少なくして効率よくすることを「リファクタリング」といいます。)くりかえしブロックはオレンジのカテゴリにあります。Uターンの図が書いてあるものです。
これを使って先ほどのプログラムを書き換えてみましょう。上下のブロックがそれぞれ4回くりかえされていますから、図のようになるはずです。
見ていただければわかりますが、上と下のブロックはそれぞれ1つずつであとはそれを4回くりかえすという書き方になっています。これで動かしていただくと、実際に同じ動きになっていることがわかると思います。
ではもう一つのほうの動きを変更してみましょう。
先程の例を見ていただいていると簡単だと思いますが、回転のブロックも同じように置き換えることができます。こうすることでブロックの全体の数は少なくなっていることはわかると思います。例では4回だけですが、数を指定することで何回でも同じことをくりかえすことができます。
では、くりかえしの数を0にしたらどうなるでしょう?これはご自分でためしてみてください。
ずっとくりかえす方法
次に、ずっとくりかえしたいとき、つまり無限にくりかえすときはどうしたらよいでしょうか。先ほどの数を書く場合だと、書くことができる数字には限界があります。そこでスクラッチジュニアでは、ずっとくりかえすためのブロックが用意されています。赤いブロックのカテゴリのところにある、やじるしが追いかけているような絵のブロックです。
これを使った場合、このブロックの前にあるブロックをすべてずっとくりかえす事になります。間違えてはいけないのが、直前のブロック一つだけをくりかえすのではなく、すべてのブロックをくりかえすところです。(この性質は、スクラッチジュニアのある意味表現範囲の限界を決めてしまっている気がしています。)では、このブロックを先ほどのコウモリに使って、ずっと飛び続けるコウモリを作りましょう。
すぐにできましたでしょうか。赤いブロックは最後にしかつけられないので、図のような形でくりかえしのブロックを取り除いたあとに、赤いブロックを最後につけることになります。ではこれでコウモリを動かしてみましょう。ご自分の目で確かめていただけるとわかりますが、コウモリは右の端に移動したあとは、もう一度左の端から登場します。ゆらゆら飛びながらずっと飛び続けるような動きをしていることが確認できたはずです。
ネコのほうも良くしよう
コウモリはずっと動くようになりましたが、ネコのほうが止まってしまいます。これをずっと動くようにしてみましょう。ネコのプログラムを見ていただきますと、図のようになっているはずです。(前回の動画参照)この赤いブロックを入れ替えるとくりかえしになりますよね。
これで「ぴょんぴょん跳ねながらネコがコウモリから逃げるのまき」ができているのですが、もう少しアレンジしてみます。逃げるときに、「こうもりだー」とさけびながら逃げてもらいましょう。セリフをしゃべるときに使うのが、ふきだしブロックです。
図のブロックを使ってみましょう。逃げる動きとは関係なくとにか口を動かしてもらおうと思います。
ふきだしをタッチするとセリフをかきこめるので、「こうもりだー」とかいてみてください。
期待した通りの動きになりましたでしょうか。こうもりだーと言いながらネコがコウモリから逃げるような動きをするはずです。
まとめ
今回は、くりかえしに関して説明しました。最初は直感的に使えないかもしれませんが、慣れてくるとどんどんくりかえしを使ってプログラムを書くことができるようになります。いくつも自分で作ってみることでより理解が深まるはずです。次回はものがたりの作り方について説明します。お楽しみに!
文京区小石川で小学生、中学生、高校生を対象としたプログラミング&ロボット教室を開校しています。スクラッチジュニアはエントリーコースで受講できます。ご興味ありましたらぜひお問い合わせください。
お問い合わせはこちら!
]]>