Lesson7:定義

 Lesson3で、繰り返し処理の制御ブロックを使って、Codey Rockyを、四角く走らせました。

CodeyRockyを四角く走らせるための繰り返し処理ブロック画像

ブロックでいうと、↑のような形で四角く走らせることが出来ます。

Codey Rockyの軌跡としては、↓みたいな動きになりますね。

Codey Rocky 動く軌跡の画像
では、↓のように動かすには、どういうブロックを組んでいけばよいでしょうか?

Codey Rocky 動く軌跡2
今回は、同じような動きを何度もさせたい時に必須の「定義」についての話です。

■Lesson7の目標

・プログラミングにおける、定義の基礎を理解する
・mBlock5のブロックプログラミングにおいて、定義ブロックを作成し、それを使ったプログラムの作り方を理解する

■Lesson7で準備するもの

Lesson1と同じです。
・Makeblock社のCodey Rocky(アマゾンとかで\13000くらいです)
・PC(windoows10 or mac)※こちらの講座ではWindows10で話を進めます。
・mBlock5 ※PCにダウンロードして使います。無料でダウンロードできます。
 

キーコンセプト:定義とは

 mBlockなどのビジュアルプログラミング言語を使って行うロボットプログラミングでいう「定義」とは、ロボットに同じ動きを繰り返しさせたい場合に、「同じ動き」をするブロックをまとめたものに、名前を付けてオリジナルのブロックを作り、そのオリジナルのブロックを使って、プログラムを簡単にしていくときに使うやり方です。

っと言葉で言っても、何言ってるんだか分かりませんね(笑)

例えば、↓のような動きをCodey Rockyにさせたい場合は、

Codey Rocky 動く軌跡2

簡単に考えれば、↓のようなブロックで出来ますよね?

Codey Rockyでの定義ブロック説明1 ですが、「四角く走る」という同じ処理が、2回出てきています。こういうような場合は、何度も同じ処理のブロックを組み合わせるのも面倒です。そこで、「四角く走る」という処理を予め定義して「四角く走る」ブロックを自分で作ってしまうと、プログラムが簡単になります。

 四角く走るというブロック作って組んだプログラムが↓です。

Codey Rockyでの定義ブロック説明2 これだと、非常にシンプルなプログラムになりますね。
余談ですが、私の友人でプロのプログラムを書く人がいるんですが、たまに、「まだプログラムは美しくないから、人に見せたくない」とか言う事があります。
 
 なんでそんな事、言うのかなって思ったら、「試行錯誤しながら組んで、意図した動きをコンピューターにさせる事は出来ているのだが、プログラムがごちゃごちゃしていて、他のエンジニアには、見やすくないので、プログラムの内容をが分かりにくいから」という事だそうです。

 定義でオリジナルのブロックを使うと、自分で作る際に、プログラムが楽に作れると同時に、他の人が見ても、このプログラムは、どのような内容なのかが、分かりやすくなります。

 さて、では、定義ブロックの作り方についてですが、
1、ブロックパレットの下の方にある、ブロック定義を選択
2、ブロックに名前を付ける(今回の説明では「四角く走る」にしています)
3、そうすると、スクリプトエリアに「四角く走る」を定義しますというブロックが出現します。
4、その定義ブロックの下に、四角く走るという処理のブロックを組んでいきます。
5、定義ブロックパレットにある「四角く走る」ブロックを使ってプログラムを組みます。

言葉でいうと分かりにくいので、↓の動画を参考にしてください。

 

まとめ:定義ブロックを使って、プログラムを美しくする

今回、ロボットプログラミングにおける定義を理解し、mBlock5で定義ブロックを作る方法を学びました。子供たちとロボットプログラミングを楽しみ際にも、「定義」を使う事を心がけると、同じ処理をひとまとめにするという視点が養われ、物事を抽象化し、他に転用するという能力も身に付けられそうですね。