コウです、よろしくお願いします!
「ゼロからプログラミングを始める」人に役立つ情報を発信しています!
今回はDay19「3つの分かれ道」の解説になります
解答例と解説
まずは解答例と解説を確認していきましょう!
解答例
コードの解答例は以下のようになります。
解説
上記のコードを実行した結果がこちらになります。
3つのスイッチを切り替えることができましたね!!
今回のポイント
繰り返すパターンを見つけ出す
前回そして前々回同様、今回も繰り返すパターンを探していきます!笑
初期画面を確認しましょう。
Byteの2マス前、さらにそこから2マス前、さらに2マス前にそれぞれ分かれ道があります
そしてそれぞれ7マス進んだ先に切り替え前のスイッチがあります
上記のアンダーライン部分が共通しているので、
パターン化できそうですね!
「2マス進んで階段の下からスイッチを切り替えて階段の下に戻ってくる」
これを言語化すると、
「2マス進む→右を向く→7マス進む→スイッチを切り替える→後ろを向く→7マス進む→右を向く」
になります
3回繰り返せば3つのスイッチを切り替えて、
1番奥の階段の下に戻ってくるはずです!
関数を定義する
みなさん、上記のパターンの中の「7マス進む」って
コマンド入力すると大変ではないですか?
「moveForward()」7回分です。
1回ならまだしも、今回は往復する必要があるので2回です。
これだけで14行も使うことになるので、コードも煩雑になります、、
そんなお悩みを解決!!
何度も使うコマンドのパッケージを作るのがfuncでしたよね!
詳しくはこちらから↓
「func seven()」と名前をつけて、7マス進む関数を定義すると便利かもしれません!
ステージ攻略「3つの分かれ道」
攻略
ステージを攻略していきましょう!
「スイッチ0/3」なので、先ほどのパターンでfor文を作って
3つのスイッチを切り替えていきます
パターンは、
「2マス進む→右を向く→7マス進む→スイッチを切り替える→後ろを向く→7マス進む→右を向く」
です
スイッチは全部で3つ切り替えるので、for文に入力する回数は3ですね!
まとめ
全て書くと面倒なコードも、forやfuncを使えば省略することができます
パターンが見つけられないという方は、
とりあえず全てコマンドを入力してみて、
それを見てパターンを探す練習をするのもいいかもしれません!
- パターンが見つからない時は、コマンドから探す練習をしてみる
- 今まで使った関数などをフル活用してみる
次回はDay20「右にも左にも」でお会いしましょう!ではまた!!