Programming

Day57「ワープのオンとオフ」|Swift Playgrounds 攻略と解答例

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

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

今回はDay57「ワープのオンとオフ」です。どうぞ!!

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

解答例

まずは解答例を確認しましょう。

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

解答例を動画で確認する

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

ステージ攻略「ワープのオンとオフ」

それではステージを攻略していきましょう!

今回のクリア条件は、『宝石を7個集めて、スイッチを1つ切り替える』ことです。

通りたいルートはこちらです。

ワープがあって進むことができなかったり、

逆にワープがないと反対側に渡れなかったりします。

適切にワープのオン・オフを切り替える必要がありますね。

解答例に沿って、分割して説明していきますね!

変数を宣言する

var gemCounter = 0

var switchCounter = 0

今回は『宝石とスイッチの数』によって

ワープの切り替えをしていきます。

そこで、宝石の数とスイッチの数を数える変数を宣言しました。

変数については↓から

Day48「記録する」【var:変数を宣言】|Swift Playgrounds 攻略と解答例 コウです、よろしくお願いします! 「ゼロからプログラミングを始める」人に役立つ情報を発信しています! 今回からはついに『コ...

whileループの条件

今回はwhileループを使っていきます。

変数とセットで出てくることが多いかもしれませんね!

gemCounter < 7 

最終的に宝石を7つ集めてクリアすることを見越して、

宝石の数が7個になったらループが止まるようにします。

①1マス進む

moveForward()

1マスずつ調べて、宝石やスイッチがあったら動けるようにします。

②②’ワープのオン・オフを切り替える

ここが今回の肝になります。

if gemCounter == 4 && switchCounter == 0 {

        purplePortal.isActive = true

    } else {

        purplePortal.isActive = false

        }

まずは赤文字の部分から。

宝石の数が4個でスイッチの数が0個の時、紫のワープはオンになる

これはいつなのか。

赤で囲まれている部分を見てください。

この4個の宝石を全て取った時にワープはオンになります。

逆に『それ以外の時はワープをオフにする

と書いてあるのが青文字の部分です。

4個の宝石を取ってワープした後に、スイッチを切り替えにいきます。

このスイッチを切り替えた時点で、赤文字の条件を満たさなくなるので

ワープはオフになります。

この赤文字青文字により、宝石とスイッチの獲得数に応じて

スムーズに移動することが可能になります。

③宝石を取って数を数える

if isOnGem {

        collectGem()

        gemCounter += 1

    }

②②’の条件に関わってくるので、

宝石を取ったら必ず変数の値にプラス1をしましょう。

④スイッチを入れて数を数える

if isOnClosedSwitch {

        toggleSwitch()

        switchCounter += 1        

    }

スイッチの場合も同様です。

この数がしっかりと数えられないと、

ワープのオン・オフがおかしくなります

⑤後ろを向く

if isBlocked && isBlockedRight {

        turnLeft()

        turnLeft()

    }

Uターンする必要のあるところが2箇所あります。

前と右が行き止まり』の条件をつければ必要な場所でUターンできます。

まとめ:ワープのオンとオフ

変数を宣言することでスマートなコードにしました。

しかし、はじめからここまで書けなくていいと思います。

今回のポイントを振り返りましょう。

ポイント
  • 必要な時に適切にワープのオンとオフを切り替えることが大切

タイトルが「ワープのオンとオフ」なので、それができていれば大丈夫です!

次回はDay58「ワープを正しく操作する」でお会いしましょう!それでは!!

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