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