コウです、よろしくお願いします!
「ゼロからプログラミングを始める」人に役立つ情報を発信しています!
今回はDay27コードを学ぼう1「囲まれる」の解説になります。
解答例と解説
解答例と解説から確認していきましょう!!
解答例
コードの解答例は以下のようになります。
解説
上記のコードを実行した結果がこちらになります。
ステージ攻略「囲まれる」
攻略
ステージ攻略は以下の通りです!
ステージタイトルは「囲まれる」です。
その名の通りにByteの初期位置の周りは宝石とスイッチで囲まれています。
スイッチに関しては、光っているものとそうでないものがあります。
これまでのステージで使ってきた、
func(関数の定義)やif(条件分岐)、for(ループ)などを駆使していきます。
func(関数の定義)
funcのおさらいは↓から!
ここで定義したい関数は、「集めるまたは切り替える」です。
Byteの周りを宝石やスイッチで埋め尽くされているので、この行動は繰り返し使うことになるからです。
if(条件分岐)と組み合わせます!
if(条件分岐)
ifのおさらいは↓から!
上記のfunc(関数の定義)と組み合わせて使います。
「集めるまたは切り替える」ですが、前回も同じものを使いましたね。
ifとelse ifを使って「集めるまたは切り替える」形を作り、それをfuncの箱の中に入れました!!
for(ループ)
funcとifを使って、「集めるまたは切り替える」の関数を定義できました。
あとは、for(ループ)を使いながらByteを必要な場所に誘導してあげます。
今回は、forループを2パターンに分けました。
パターン①は「1マス進む→チェック→右を向く」です。
パターン②は「1マス進む→チェック→1マス進む→チェック→右を向く」です。
※チェックは、「集めるまたは切り替える」を意味しています。
2パターンについて、画像を見ながら詳しく見てみます。
パターン①では青で囲まれた2マスをチェックします
パターン②では赤で囲まれた6マスをチェックします。
2つのパターンを使い分ける理由がわかりますか?
①では1マス進むと右に曲がる必要があるのに対し、
②では2マス進むと右に曲がる必要が出てきます。
これをひとつのforループに入れるのが難しかったため、ふたつに分けました^^
まとめ
forループについては、2パターンに分割しましたがみなさんはいかがでしたでしょうか。
もし「1パターンでできた!」とか、「他の方法があった!」という方はTwitterで教えてください!
- これまでに使ったさまざまな方法を組み合わせる
- 無理にループをまとめようとする必要はない
次回はDay28「繰り返しを探す」でお会いしましょう!ではまた!!