Lesson4:コードは出来るだけシンプルに ー繰り返し処理ー
Lesson3では、ロボットを動かすには、動作を順序だてて指示を与える必要があり、その為に、順次処理という基本があるお話をしました。順次処理は、我々も、日常生活で何かしらしていますよね。例えば、カレーを作る場合は
カレールーの在庫を確認する
↓
人参・玉ねぎ・ジャガイモ・肉を買う
↓
ご飯を炊く
↓
材料を切る
↓
材料を炒める
↓
鍋に水を入れる
↓
材料を鍋に入れる
↓
煮る
↓
カレールーを入れる
↓
トロトロなるまで煮る
上は順次処理ですよね。
もし、私がカレー屋さんだった場合は。これを毎日「繰り返す」わけです。
ロボットプログラミングでも同じく、同じ順次処理を、繰り返す場合があります。
今回はその場合のブロックの組み方についてのお話です。
■Lesson3の目標
■Lesson3で準備するもの
キーコンセプト:繰り返し処理とは?
Lesson3で、CodeyRockyを四角く動かすプログラムを作りました。
さて、皆さんこれを見て、どう思いますか?なんか、同じブロックが繰り返し出てきているなあと思いませんか?はい、思いますよね。
プログラムを書く場合は、できるだけ、シンプルに、他の人が見ても分かりやすく書くことが、作法としてあります。
↑のように、同じブロックが繰り返し出ている場合、プログラミングでは、繰り返し処理というものをします。mBlockにも繰り返し処理のためのブロックがあるんですねえ。
ブロックエリアの「制御」のタブを選択すると、下のようなブロックが出てきます。
これが繰り返し処理のブロックですね。繰り返しには、
・●●回繰り返す
・ずっと繰り返す
・■■まで繰り返す
の3種類があり、どれかを指定します。
CodeyRockyを四角く走らせたい場合には、1秒走る、90度曲がるを4回繰り返せばよいですね。
ご想像の通り、ずっと繰り返すブロックを使うと、ずっと四角く走り続けます。バッテリーがなくなるまで。
コーディング練習
CodeyRockyの表情を変えながらダンスをさせてみましょう。例えば↓の動画のような感じで。
まとめ:同じ動きのパターンは、シンプルにまとめる
今回、ロボットプログラミングにおける繰り返し処理と呼ばれるプログラムを理解しました。
1、プログラミングをするときはできるだけシンプルなブロックにならないか考えてみる
2、同じブロックの繰り返しがある場合は、その部分を繰り返し処理する
3、繰り返しブロックには、3種類ある(回数・ずっと・○○まで)
プログラミングを学ぶと、パターンを見つけて、抽象化して、他に転用するという思考が養われるというような話を聞いたことがあります。
繰り返している順次処理(パターン)を見つけて、それを繰り返し処理にして(抽象化)するようなことをしていくと、確かにそういった力が養われるかもしれませんね。