Lesson7:定義
Lesson3で、繰り返し処理の制御ブロックを使って、Codey Rockyを、四角く走らせました。
ブロックでいうと、↑のような形で四角く走らせることが出来ます。
Codey Rockyの軌跡としては、↓みたいな動きになりますね。
では、↓のように動かすには、どういうブロックを組んでいけばよいでしょうか?
今回は、同じような動きを何度もさせたい時に必須の「定義」についての話です。
■Lesson7の目標
■Lesson7で準備するもの
キーコンセプト:定義とは
mBlockなどのビジュアルプログラミング言語を使って行うロボットプログラミングでいう「定義」とは、ロボットに同じ動きを繰り返しさせたい場合に、「同じ動き」をするブロックをまとめたものに、名前を付けてオリジナルのブロックを作り、そのオリジナルのブロックを使って、プログラムを簡単にしていくときに使うやり方です。
っと言葉で言っても、何言ってるんだか分かりませんね(笑)
例えば、↓のような動きをCodey Rockyにさせたい場合は、
簡単に考えれば、↓のようなブロックで出来ますよね?
ですが、「四角く走る」という同じ処理が、2回出てきています。こういうような場合は、何度も同じ処理のブロックを組み合わせるのも面倒です。そこで、「四角く走る」という処理を予め定義して「四角く走る」ブロックを自分で作ってしまうと、プログラムが簡単になります。
四角く走るというブロック作って組んだプログラムが↓です。
これだと、非常にシンプルなプログラムになりますね。
余談ですが、私の友人でプロのプログラムを書く人がいるんですが、たまに、「まだプログラムは美しくないから、人に見せたくない」とか言う事があります。
なんでそんな事、言うのかなって思ったら、「試行錯誤しながら組んで、意図した動きをコンピューターにさせる事は出来ているのだが、プログラムがごちゃごちゃしていて、他のエンジニアには、見やすくないので、プログラムの内容をが分かりにくいから」という事だそうです。
定義でオリジナルのブロックを使うと、自分で作る際に、プログラムが楽に作れると同時に、他の人が見ても、このプログラムは、どのような内容なのかが、分かりやすくなります。
さて、では、定義ブロックの作り方についてですが、
1、ブロックパレットの下の方にある、ブロック定義を選択
2、ブロックに名前を付ける(今回の説明では「四角く走る」にしています)
3、そうすると、スクリプトエリアに「四角く走る」を定義しますというブロックが出現します。
4、その定義ブロックの下に、四角く走るという処理のブロックを組んでいきます。
5、定義ブロックパレットにある「四角く走る」ブロックを使ってプログラムを組みます。
言葉でいうと分かりにくいので、↓の動画を参考にしてください。
まとめ:定義ブロックを使って、プログラムを美しくする
今回、ロボットプログラミングにおける定義を理解し、mBlock5で定義ブロックを作る方法を学びました。子供たちとロボットプログラミングを楽しみ際にも、「定義」を使う事を心がけると、同じ処理をひとまとめにするという視点が養われ、物事を抽象化し、他に転用するという能力も身に付けられそうですね。