コウです、よろしくお願いします!
「ゼロからプログラミングを始める」人に役立つ情報を発信しています!
今回はDay18「ワープしてループして」の解説になります
解答例と解説
解答例と解説から見ていきます!
解答例
コードの解答例は以下のようになります。
解説
上記のコードを実行した結果がこちらになります。
無事に全ての宝石を集めることができました!!
今回のポイント
繰り返すパターンを見つけ出す
前回同様、今回もまずは繰り返すパターンを探していきます
下の画像を見ながら考えてみます
説明文には
「1つ目の宝石を取る方法を考えて、同じパターンで残りの宝石も取れるか試してみましょう」
とあります。
1つ目の宝石をとる行動が繰り返すパターンなのでしょうか。
「1マス進む→左を向く→2マス進む→宝石をとる」
これで1つ目の宝石を取ることができます。
では、この位置からもう一度上のコマンドを繰り返してみるとどうなるでしょうか。
Byteは画面の奥の方を向いているので、
このままでは「1マス進む」が実行されません。
まずは右を向かせます。
そこから
「1マス進む→左を向く→2マス進む→宝石をとる」
を実行するとどうでしょうか。
上の画像の宝石が取れました!!
この位置から次に進もうとするとまた1マス進むが実行されないので、
「右を向く」もパターンの中に入れると良さそうだとわかります!
ステージ攻略「ワープしてループして」
攻略
それではステージを攻略していきましょう!
「宝石0/5」なので、先ほどのパターンを繰り返して5個の宝石を取っていきます
パターンは、「1マス進む→左を向く→2マス進む→宝石をとる→右を向く」です
宝石は全部で5個取るので、for文に入力する回数は5ですね!
まとめ
今回もパターンを見つけることが肝でしたがどうでしたか?
ワープがあるので、全体を見渡しても見つけるのが難しかったかもしれません
その場合には、今回のように分解して少しずつ実行すると
見つけられることがあるかもしれません!!
- 繰り返しのパターンを見つける
- パターンが見つからない時には分解して実行してみる
次回はDay19「3つの分かれ道」でお会いしましょう!ではまた!!