コウです、よろしくお願いします!
「ゼロからプログラミングを始める」人に役立つ情報を発信しています。
今回はDay76「階段を置く」です。どうぞ!!
解答例
まずは解答例を確認しましょう。
コードは次のようになります。
解答例を動画で確認する
上記のコードを実行した結果がこちらになります。
ステージ攻略「階段を置く」
ステージを攻略していきましょう!
クリア条件
今回のクリア条件は、『スイッチを9つ切り替える』ことです。
ステージの詳細を確認しましょう。
ホッパーの前やスイッチのあたりには段差があります。
1マス分なのでjump()を使えば越えられるんですけど、今回は使わないようです。
新しく追加された『階段の設置』を使っていきます。
階段を設置する
キャラクター・ブロック・ワープと設置してきましたが、
今回は新たに『階段』を設置します。
階段もこれまで同様定数として宣言してから使っていきます。
ですが、ショートカットが用意されているようです。
それは、『Stair型』を初期化しなくていいというものです。
つまり、
let stair = Stair( )
world.place(stair, facing: .north, atColumn: 1, Row: 1)
のようにしなくていいそうです。
ではどのように配置していくのでしょうか。
world.place(Stair( ), facing: .north, atColumn: 1, Row: 1)
これで初期化と配置を同時に行えるそうです。
1行減りました。
めちゃ便利ですね!
「階段を(1,1)に北向きに設置する」となります。
僕は5箇所に階段を設置しました。
方向は
(3,1)(3,3)がsouth(南)
(3,7)がnorth(北)
(1,5)がwest(西)
(5,5)がeast(東)
です。
向きを間違えるとホッパーが進めないので注意してください!
階段を5箇所に設置すると画像のようなステージになります。
規則性のあるステージになりましたね!
関数を定義
規則性があるので、関数を定義しましょう。
画像の赤いマスから考えます。
スイッチは3つずつ3方向に配置されていますが、どれも同じ方法で切り替えることができそうですね。
「3マス進む→スイッチを切り替える→左を向く→1マス進む→スイッチを切り替える→後ろを向く→2マス進む→スイッチを切り替える→後ろを向く→1マス進む→左を向く→3マス進む」
これで赤いマスから出発してスイッチ3つを切り替えて、
また赤いマスに戻ってくることができますね。
あとはホッパーの向きに気をつけて、
関数を3回実行すればステージクリアです!
まとめ:階段を置く
どこに階段を置くかがポイントになります。
どういうルートを通したいのかをあらかじめ考えてから、
必要な場所に階段を設置するといいですね!
今回のポイントを振り返りましょう。
- 階段を設置することもできる。
- 初期化と設置は同時に行うことができる。
次回はDay77「島を渡る」でお会いしましょう!それでは!!