見出し画像

【Robo Blocksの使い方】ブロック定義の使い方_その4 引数の設定2

ソフトバンクロボティクスでPepperを使ったプログラミング教育を担当してる佐藤です!
前回に引き続き、ブロック定義の使い方を紹介します!

関連する過去の記事はこちらからご覧ください。
その1 その2 その3


真偽値を引数に設定する

前回の記事では"数値またはテキスト"の引数を紹介しました。
同じように真偽値も引数にすることができます。
(Robo Blocksでの真偽値の使い方はこちら

ブロック定義から作成してみます。
真偽値を引数に追加するには真ん中のボタンを押します。
ここでは、クイズゲームで正解かどうか判定するブロックを作るイメージで、真偽値を1つ引数にとるブロックを作成しました。

真偽値を引数にする

使い方は"数値またはテキスト"と全く同じですが、真偽値ですので引数の形が六角形になっています。

真偽値は六角形

真偽値なので、もし〜ならブロックの条件にすることができますので、クイズの正解不正解を判定するのであれば以下のように組むことができます。

正解かどうか判定する

こうしておくと正当がなんであれ使い回すことができるようになります。
何かを判定するようなブロックを作るときは、真偽値を引数にするとシンプルに作成できるかもしれません。

ブロックにラベルを設定する

ブロック定義に設定できる項目は3種類あります。
最後にご説明する設定項目は”ラベル”で、ブロックに説明を書くことができる機能です。説明書きですので、引数と違ってプログラムに直接影響することはありません。
作成したブロックに貼れる注意書きシールみたいなイメージです。

早速使ってみましょう。
ブロック作成画面で単純にラベルを追加するボタンを押してみると以下のようになりました。

ラベルのテキストを追加ボタンを押した場合

ブロック名とくっ付いてしまっていますね。
ラベルもブロック名もテキストですのでまとめられた形です。
つまり、ラベルの役割はブロック名とほぼ同じで説明書きということです。

ラベルを使うと便利な場面は以下などがあります。
1.引数から始まるブロックを作りたいとき
2.複数の引数を設定したとき

1の引数から始まるブロックとは、以下のようにまず引数があって後ろに文字が書かれているブロックです。

引数から始まって、文字はその後ろにある

ラベルを使うと、この書式に設定することができますので、試してみましょう。
ブロック作成画面で引数を追加した後、ブロック名の上に表示されるゴミ箱アイコンを押します。

ゴミ箱アイコンをクリックする

こうするとブロック名が削除され、引数1個だけのブロックになります。

引数だけのブロック

この後にラベルを追加すると、引数から始まるブロックを作ることができます。例になっていた聞き取るブロックを再現するならば、以下のようになります。

聞き取るブロックを再現してみる

この設定でブロックを作成した結果が以下です。
同じデザインのブロックを作ることができました。

引数から始まるブロックを作ることができた

2の複数の引数を設定する場合については、設定方法と合わせて紹介します。

複数の引数を設定する

ブロック定義で作成するブロックには複数の引数を設定することができます。引数が複数あるイメージがわかない方もいらっしゃるかもしれませんが、標準のブロックにも複数の引数があるブロックが沢山あります。よく使うしゃべるブロックも改めて見てみると引数が3つあることがわかります。

引数が複数あるブロックの例

複数の引数を設定する方法は非常に簡単で、追加したい引数を選択するだけです。試しに"数値またはテキスト"を2つ設定してみました。

複数の引数を持ったブロックの作成例

プログラムを作る際には、出来る限り読みやすくすることが重要です。
引数が2つ以上ある場合、どちらの引数がどんな役割なのか必ずわかるような名前をつけましょう。
例えば、割り算ブロックを作るときを想定して、以下のような形にしてみました。

引数には名前をつける

しかしながら、この設定では不十分です。
これでブロックを作ると以下のように、定義部分では分かりやすいが使う部分では説明がなく分かりにくいという問題が発生します。

定義部分には説明があるが、使うときには説明がない

そこでブロックに説明が記入できるラベルを使って、以下のように説明を追加しましょう。引数と引数の間にラベルを置くことで説明を書くことができます。

引数の間にラベルを挟む

この設定で作成すると以下のブロックが生成されます。

ラベルを追加した例

どの引数が何を意味するのかが一目瞭然になりました。

まとめ

今回は、真偽値の引数・ラベル・引数の複数設定を紹介しました。
どれも大きなプログラムを作る際には役に立つテクニックです。

ブロック定義は非常に便利でなんでもできてしまうのですが、それゆえに何をどう設定したのか自分でもわからなくなってしまうことがあると思います。
ラベルを使ってわかりやすいブロックを作って、プログラムの作成を効率化しましょう!