Programming

Day39「方法はたくさん」|Swift Playgrounds 攻略と解答例【ゼロから学習】

コウです、よろしくお願いします!

「ゼロからプログラミングを始める」人に役立つ情報を発信しています!

今回はDay39コードを学ぼう1「方法はたくさん」の攻略になります!!

小学生から社会人までおすすめ!!プログラミング言語『Swift』について!【今始める理由と学び方】 こうといいます、よろしくお願いします! 小学校で教師をやっていた経験を活かして、 プログラミングについて悩みをお持ちの保護...

解答例と解説

解答例と解説を確認していきます!

解答例

コードの解答例は以下のようになります。

解答例を動画で確認する

上記のコードを実行した結果がこちらになります。

ステージ攻略「方法はたくさん」

攻略

ステージを攻略していきましょう!

今回はタイトルが「方法はたくさん」となっているように、さまざまな解き方があります。

前回同様、紹介する回答はあくまで一例として考えてください!

まずはワイヤーフレームの確認から!

ワイヤーフレームについてはこちらから↓

Day26「関数をじょうずに使う」【Swift Playgrounds 攻略と解答例】 コウです、よろしくお願いします! プログラミング経験は全くない素人ですが、「ゼロからアプリ開発できるのか!?」ということで日々勉...

コードを実行すると、一番奥の壁の位置や宝石・光っているスイッチの数が変わります。

下のように3分割して考えることにしました!

赤・青・緑の3列に分けました。

赤の列と緑の列ではスイッチの確認

青の列では宝石の確認をしていきます。

これは条件分岐コード(if文)を使えばできますよね!

あとはこの3列を往復させればイイわけです!

歩き続けるためにwhileループを使って、

条件を「行き止まりでない時」とします。

これでByteは歩き続けます。

問題は2箇所あります。

まずは赤の列の終わりです。

ここでは「目の前と左側が行き止まり」なので、

「if isBlocked && isBlockedLeft」としました。

単純に「目の前が行き止まり」のみとしてしまうと、

Uターンして青の列が終わった時にも当てはまってしまい無限ループしてしまうので、

条件を詳細にしてあります。

次に、青の列の終わりです。

ここは、「if isBlocked && !isBlockedRight」で、

「目の前が行き止まりかつ右側が行き止まりでない」を条件にしました。

これはこの後Uターンして緑の列が終わった際に、

さらにUターンしてしまうことがないようにしてあります。

まとめ

今回のステージもさまざまなクリア方法があると思います。

もっと効率の良い方法がありましたらTwitterなどで教えてください!

次回はDay40「ループをネストする」でお会いしましょう!ではまた!!

小学生から社会人までおすすめ!!プログラミング言語『Swift』について!【今始める理由と学び方】 こうといいます、よろしくお願いします! 小学校で教師をやっていた経験を活かして、 プログラミングについて悩みをお持ちの保護...