Programming

Day58「ワープを正しく操作する」|Swift Playgrounds 攻略と解答例

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

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

今回はDay58「ワープを正しく操作する」です。どうぞ!!

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

解答例

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

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

解答例を動画で確認する

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

ステージ攻略「ワープを正しく操作する」

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

今回のクリア条件は、『宝石を4個集める』ことです。

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

わかりやすくするために黒と青に分けています。

初めはピンクのワープに入って戻ります。(黒の線)

次に青のワープに入ります。(青の線)

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

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

変数を宣言する

var gemCounter = 0

今回は『宝石の数』によって

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

そこで、宝石の数を数える変数を宣言しました。

変数については↓から

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

whileループの条件

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

gemCounter < 4 

宝石が4個集まったらクリアなので、

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

①ワープのオンとオフを切り替える

今回の重要ポイントですね。

if gemCounter == 0 {

        bluePortal.isActive = false

        pinkPortal.isActive = false

    } else if gemCounter == 1 {

        pinkPortal.isActive = true

    } else if gemCounter == 2 {

        bluePortal.isActive = true

    } else if gemCounter == 3 {

        bluePortal.isActive = false

        }

宝石の数が『0個1個2個3個』の時に

ワープのオン・オフを制御します。

ルートと照らし合わせましょう。

0個の時には、1つ目の宝石まで行きたいので、ワープは両方ともオフ

1個の時は、ピンクを使ってワープしたいので、ピンクだけオン

2個の時は、ピンクを使って戻ってから青を使ってワープしたいので、青をオン

3個の時は、青がオンだと戻されてしまうので、青をオフ

これでスムーズに行き来できるようになります!

②1マス進む

moveForward()

1マスずつ進んで調べていきます。

今回はワープのオフを先に行いたいので、その下に書きます。

③宝石を取り数を数えて後ろを向く

if isOnGem {

        collectGem()

        gemCounter += 1

        turnLeft()

        turnLeft()

    }

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

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

どの宝石も取った後に振り向くことになるので、

それも入れておきます。

④後ろを向く

    if isBlocked {

        turnLeft()

        turnLeft()

    }

宝石を取ったらUターンするようになっていますが、それ以外にも後ろを向かないといけないところもあります。

前が行き止まり』の時には後ろを向くようにしてあげます。

まとめ:ワープを正しく操作する

ワープを切り替えることで、ゲーム性が出てきて楽しいですね!

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

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

次回はDay59「隅々まで歩き回る」でお会いしましょう!それでは!!

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