コウです、よろしくお願いします!
「ゼロからプログラミングを始める」人に役立つ情報を発信しています!
今回はDay21「4つの場所に4つの宝石」の解説です。

解答例と解説
まずは解答例と解説から確認していきましょう!
解答例
コードの解答例は以下のようになります。

言語化した文章をコマンドとして書き換えました!
解説
上記のコードを実行した結果がこちらになります。
なかなかの長編ですが、クリアできました!!
今回のポイント
パターンを見つける
アプリ画面にもあるように一見すると難しそうに思えるステージですが、
パターンさえ見つけてしまえばforループが解決してくれます!

Byteがかぶって見えづらいですが、
初期位置の前に4つの宝石が凸の形に並んでいます。
そして4つ全て取り終えたとして緑のワープに入ると、
また凸の形に宝石が並びます。
これも取ってワープに入るとその先も、さらにその先も、、
というように続いていくのがわかるでしょうか。
もうパターンを見つけることができましたね!
宝石を4つ集める
それでは、宝石4つを集めてワープに入るところまでを確認します。
初期位置から
「1マス進む→宝石を集める→1マス進む→宝石を集める→後ろを向く→1マス進む→右を向く→1マス進む→宝石を集める→後ろを向く→2マス進む→宝石を集める→1マス進む」
とすると、4つの宝石を取った後にワープに入って、また宝石の前にいるはずです。
ステージ攻略「4つの場所に4つの宝石」
攻略
それではステージを攻略していきましょう!

再度初期画面を見ながら考えていきます。
「0/16」とすごい数になっていますが、驚くことはありません。
先ほどの「宝石4つを集める」を1セットとしてこれを4回繰り返せばいいからです。
そして、for文に入力する回数は4になります!
まとめ
パターンを見つけてしまえば、あとはfor文に回数を指定して入れるだけなので、
難しくないですね!
解答例を作った印象では、「moveForward() collectGem()」は多用しているので、
funcで関数として定義してもいいかもしれません!!
- パターンさえ掴めてしまえばあとはforループに入れるだけ
これでforループユニットも終了になりました!!
次からは条件分岐ユニットに入ります!
こまで勉強してきてプログラミングに興味を持った人は、
実際にプログラミング教室に通ってみるのもおすすめです。

今なら春の入会キャンペーン実施中です。
ロボットプログラミングに興味がある方はこちらもおすすめ。

これからの時代を見据えて学んでいくために、
ぜひ選択肢のひとつとして考えてみてください。
次回はDay22「スイッチを調べる」でお会いしましょう!ではまた!!
