Programming

Day59「隅々まで歩き回る」|Swift Playgrounds 攻略と解答例

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

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

今回はDay59「隅々まで歩き回る」です。どうぞ!!

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

解答例

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

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

今回はループを使っていないので、長くなりました。

解答例を動画で確認する

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

ステージ攻略「隅々まで歩き回る」

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

今回のクリア条件は、『宝石を6個取って、スイッチを6個切り替える』ことです。

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

オレンジ

の順に進んでいきます。

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

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

①関数を定義する

func goBack() {

    moveForward()

    turnRight()

    moveForward()

    if isOnGem {

        collectGem()

    } else if isOnClosedSwitch {

        toggleSwitch()   

        }

    turnLeft()

    turnLeft()

}

まずは繰り返すことの多そうな行動を、関数として定義します。

宝石やスイッチは『十字』に配置されているので、

中心から出て戻ることが多くなりそうです。

スタート位置の兼ね合いで、

1マス進む→右を向く→1マス進む

→宝石かスイッチがあれば取ったり切り替える→後ろを向く

という関数になりました。

これを使って各エリアを攻略します!

②スイッチが2つあるエリア

まずは奥のスイッチが2つのエリアから。

orangePortal.isActive = false

turnRight()

moveForward()

for i in 1 … 2 {

    goBack()

}

オレンジのワープがオンだと飛ばされてしまうので、オフにします。

定義した関数が使えるところまで移動してあげて、関数を2回使います。

③宝石が4つあるエリア

次に手前の宝石が4つある場所。

orangePortal.isActive = true

goBack()

orangePortal.isActive = false

for i in 1 … 3 {

    goBack()

}

オレンジのワープをオンにして移動します。

移動した先ではまず1回だけ関数を使います。

ここで一気に4回使うと、

オレンジのワープがオンなので飛ばされます。

その後でオレンジのワープをオフにしてから関数を3回使いましょう。

④宝石が2つあるエリア

右側にある宝石が2つのエリアまで移動します。

moveForward()

turnLeft()

moveForward()

moveForward()

greenPortal.isActive = false

for i in 1 … 2 {

    goBack()

}

緑のワープをオフにしてから関数を2回使います。

⑤スイッチが4つあるエリア

最後に左側のスイッチが4つのエリア。

緑のワープをオンにして移動します。

greenPortal.isActive = true

goBack()

greenPortal.isActive = false

for i in 1 … 3 {

    goBack()

}

移動先では③と同様に1回だけ関数を使います。

ここで焦ると、元の場所に戻されます。

緑のワープをオフにしてから

関数を3回使えばステージクリアです!!

まとめ:隅々まで歩き回る

タイミングを間違えるとワープに飛ばされまくりますね。

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

ポイント
  • forループを使うタイミングをよく見定める

次回はDay60「宝石があちこちにランダムに」でお会いしましょう!それでは!!

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