連載

【embotでプログラミングを学ぼう⑭】一部を変えて再利用するプログラムの技:課題編

目次

  1. 【embotレベル】5
  2. 【プログラムの技】引数のあるファンクション
  3. 【主に使うプログラム】ひき数、while

解説編で知った新しいプログラムの技を使って、次の課題に挑戦してみましょう。

モールス信号でSOS!

モールス信号というのは、短い「トン」と長い「ツー」の2種類の組み合わせだけで文字や数字を表して、メッセージを伝える手段です。「トン」と「ツー」は音の長さや光がつく長さ、記号(「・」と「ー」)などで表します。このモールス信号のルールを使って、助けを求める「SOS」(エスオーエス)をembotで発信しましょう。モールス信号では、Sが「トン トン トン」、Oは「ツー ツー ツー」と表現するので、SOSは「『トン トン トン』『ツー ツー ツー』『トン トン トン』」です。

プログラムをするときに必要なので、モールス信号の長さのルールを確認しておきましょう。

モールス信号には、「トン」と「ツー」の2種類が必要ですが、「トン」の[function]と「ツー」の[function]を別々に作るのではなく、1個の[function]を「トン」でも「ツー」でも使えるようにしてください。

プログラムの解説とポイント

フローチャートの画面で、[start]、[while]、[function]、[end]ブロックを1個ずつ置いて線でつなぎ、空いている場所にもう1個別の[function]ブロックを置きます。それぞれのブロックの役割は次の図で確認してください。

2個の[function]ブロックと[while]ブロックのプログラムを順に解説します。

<❶「トン」か「ツー」を出すfunction>

ライトが光り、高いシの音をならして「トン」か「ツー」を出すプログラムです。「トン」と「ツー」の違いは長さですから、長さ以外は共通で使えます。ライトと音の長さは、音の拍数で決まります。「ひき数」を1個作って、音の拍数に「ひき数1」を指定してください。functionの名前はあとでわかりやすいよう「モールス」にしておきましょう。

<❷「SOS」を発信するfunction>

❶で作成したfunction「モールス」を実行してSOSを表現します。「ひき数1」に入れた数字が音とライトの拍数になります。モールス信号の長さのルールの通り、「トン」にしたいときは「ひき数1」を「1」に、「ツー」にしたいときは「ひき数1」を「3」にしてください。文字と文字の間、語と語の間は、[○拍休ふ]ブロックであけます。文字と文字の間は3拍、語と語の間は7拍です。全体のテンポは速くしたいので300に設定してください。

<whileブロック>

「ジャイロY < 5」を条件にします。タブレットが水平の間は繰り返しSOSを出し続けて、タブレットを右側に5°以上傾けると繰り返しが終わります。

これで完成です。

実際にSOSを発信している動画をご覧ください。

ほかにもモールス信号でいろいろなメッセージを伝えられそうですね。「embot」をモールス信号で表現すると次の図の通りです。ぜひプログラムを作成してみてください。

まとめ

引数を使うと、プログラムの再利用がしやすくなり、とても便利です。プログラムを作るときに同じパターンを見つけるというのはこれまでもやってきましたが、ちょっとだけ違うパターンを見つけたときには、引数を使ってfunctionを作ることができないか考えてみてください。

embot アイコン embotアプリ』はこちら!

embotを購入されていない方でも
無料でお試しいただけます。