Programming

Day67「上げたり下げたり」|Swift Playgrounds 攻略と解答例

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

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

今回はDay67「上げたり下げたり」です。どうぞ!!

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

解答例

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

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

タイトルは「上げたり下げたり」なんですけど、

僕のやり方だと「上げる」しか使いませんでした。

解答例を動画で確認する

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

ステージ攻略「上げたり下げたり」

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

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

ホッパーの動きたいルートは赤い線です。

線だけだとわかりにくかったので、宝石を取る順番も数字で入れました。

追加されたコマンド

今回から2つのコマンドが追加されました。

  1. move(distance: Int)
  2. turnLock(up: Bool, numberOfTimes: Int)

それが上記の2つです。

前回までは両方とも関数として定義する必要がありました。

けっこう手間だったので、標準搭載されたのは嬉しいですね!

宝石を取る関数を定義する

使う頻度が高い関数は定義しましょう。

func chGetAndTurn() {

    character.move(distance: 2)

    if character.isOnGem {

        character.collectGem()

    }

    character.turnLeft()

    character.turnLeft()

    character.move(distance: 2)

}

もう一度ルートを見てください。

①・②・③・④の宝石を取る時には全て、『2マス進んで宝石を取り後ろを向いて2マス進む』ことをしています。

4回も使うので関数として定義したほうが楽ですよね。

床を全て1つずつ上げる

エキスパートは鍵に4方向を囲まれた場所にいますよね。

つまり次のようなコードを書いてあげると、

全ての上下するマスを1つずつ上げてくれます。

for i in 1 … 4 {

    expert.turnLock(up: true, numberOfTimes: 1)

    expert.turnLeft()

}

これは3種類を3マス分上げる時にも使いました。

まとめ:上げたり下げたり

自分の通りたいルートによって、

定義する関数やマスの上げ下げは変わってきます。

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

ポイント
  • パラメータを使った2つのコマンドが追加

僕の解答例は参考程度にして、

自分のオリジナルを見つけてみてください!

次回はDay68「決まった位置に置く」でお会いしましょう!それでは!!

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