コウです、よろしくお願いします!
「ゼロからプログラミングを始める」人に役立つ情報を発信しています。
今回はDay74「道をつなぐ」です。どうぞ!!
解答例
まずは解答例を確認しましょう。
コードは次のようになります。
解答例を動画で確認する
上記のコードを実行した結果がこちらになります。
ステージ攻略「道をつなぐ」
ステージを攻略していきます!
クリア条件
今回のクリア条件は、『宝石を3つ取って、スイッチを3つ切り替える』ことです。
もう一度ステージを確認しましょう。
規則性のありそうなステージですね。
しかし、宝石への道に段差があります。
真ん中の列はjump()を使えば通れますが、両端は難しそうです。
全ての高さをそろえてあげましょう!
ブロックを配置する
今回もブロックを配置します。
ステージを横から見ています。
先ほども言いましたが、真ん中の列は1マス分だけの段差になっています。
この画像の手前と奥は2マス分の段差になっています。
前回のようにブロックを置いていきましょう。
ブロックの置き方の復習は↓から。
let block1 = Block()
let block2 = Block()
let block3 = Block()
let block4 = Block()
let block5 = Block()
まずは『Block型』を定数として宣言します。
2マス分が2列と1マス分が1列なので、
合計5個のブロックが必要です。
必要な数だけ宣言します。
world.place(block1, atColumn: 2, row: 2)
world.place(block2, atColumn: 2, row: 2)
world.place(block3, atColumn: 4, row: 2)
world.place(block4, atColumn: 6, row: 2)
world.place(block5, atColumn: 6, row: 2)
そして、
『world.place(item: Item, atColumn: Int, row: Int)』
を使ってブロックを配置していきます。
それぞれの座標は(2,2)(4,2)(6,2)でした。
(2,2)と(6,2)は2個、(4,2)は1個配置するということですね。
ここまででコードを実行すると画像のようになります。
段差が全て無くなって平になりましたね!!
関数を定義
あとはホッパーを導いてあげるだけです。
通りたいルートはこちらです。
道が平になって規則性が見えてきましたか?
「2マス進む→スイッチを切り替える→右を向く→4マス進む→宝石を取る→後ろを向く→4マス進む→右を向く」
この動きを3回繰り返せばクリアすることができます!
関数を定義して、forループで3回繰り返しましょう。
まとめ:道をつなぐ
道さえできてしまえば難しいことはないですよね!
今回のポイントを振り返りましょう。
- ブロックを複数設置する時には、その個数分を宣言する必要がある
次回はDay75「ワープを作る」でお会いしましょう!それでは!!