コウです、よろしくお願いします!
「ゼロからプログラミングを始める」人に役立つ情報を発信しています!
今回はDay39コードを学ぼう1「方法はたくさん」の攻略になります!!
解答例と解説
解答例と解説を確認していきます!
解答例
コードの解答例は以下のようになります。
解答例を動画で確認する
上記のコードを実行した結果がこちらになります。
ステージ攻略「方法はたくさん」
攻略
ステージを攻略していきましょう!
今回はタイトルが「方法はたくさん」となっているように、さまざまな解き方があります。
前回同様、紹介する回答はあくまで一例として考えてください!
まずはワイヤーフレームの確認から!
ワイヤーフレームについてはこちらから↓
コードを実行すると、一番奥の壁の位置や宝石・光っているスイッチの数が変わります。
下のように3分割して考えることにしました!
赤・青・緑の3列に分けました。
赤の列と緑の列ではスイッチの確認、
青の列では宝石の確認をしていきます。
これは条件分岐コード(if文)を使えばできますよね!
あとはこの3列を往復させればイイわけです!
歩き続けるためにwhileループを使って、
条件を「行き止まりでない時」とします。
これでByteは歩き続けます。
問題は2箇所あります。
まずは赤の列の終わりです。
ここでは「目の前と左側が行き止まり」なので、
「if isBlocked && isBlockedLeft」としました。
単純に「目の前が行き止まり」のみとしてしまうと、
Uターンして青の列が終わった時にも当てはまってしまい無限ループしてしまうので、
条件を詳細にしてあります。
次に、青の列の終わりです。
ここは、「if isBlocked && !isBlockedRight」で、
「目の前が行き止まりかつ右側が行き止まりでない」を条件にしました。
これはこの後Uターンして緑の列が終わった際に、
さらにUターンしてしまうことがないようにしてあります。
まとめ
今回のステージもさまざまなクリア方法があると思います。
もっと効率の良い方法がありましたらTwitterなどで教えてください!
次回はDay40「ループをネストする」でお会いしましょう!ではまた!!