コウです、よろしくお願いします!
「ゼロからプログラミングを始める」人に役立つ情報を発信しています!
Day11は「往復する」の解説になります。
※PlaygroundsはMacBookを使っています。

解答例と解説
まずは解答例と解説から!
解答例
コードの解答例は以下のようになります。

funcの中身にコマンドが5個も含まれていて、それを3回も使えているので、コスパ良しですね!
解説
それでは実行した結果がこちらになります。
タイトル「往復する」の通りに、「collect3Gems」の合間に行ったり来たりすることで
クリアすることができました!
今回のポイント
何を繰り返したいか考える
前回Day10とその前のDay9でfuncを使って繰り返し使える関数を作りましたが、
今回も同じようなステージになります。

ステージを見てみると、3×3マスに宝石がびっしりとあります。
「宝石を1列分取って方向転換」をすれば良さそうです。
方向転換については右に曲がったり左に曲がったりするので、
その都度設定してあげた方がいいです。
そこで、関数は「宝石を1列分取る」を定義してあげます。
funcの中身は以下のようになります。

名前は、宝石を3つ取るので、「collect3Gems」とします!
ステージ攻略「往復する」
攻略
それでは、ステージを攻略していきます。
ちなみに、今回からturnRight()「右を向く」が標準のコマンドとして追加されました!!

「宝石0/9」なので、ステージに配置された宝石を全て取ります。
「collect3Gems」3回分ですね!!
「collect3Gems」を使った後は、
次の3つの宝石までByteを誘導するコマンドを入力します。
まとめ
クリアに必要な関数を定義して、繰り返し使うことができたでしょうか!
他にも「こんな定義の仕方がうまくいくよ!」というのがありましたら教えてください!
- 関数を定義するときは、何を繰り返したいのかよく考える
次回はDay12「パターンをネストする」でお会いしましょう!ではまた!!
