スポンサーリンク
スポンサーリンク
解答例
let greenPortal = Portal(color: .green)
world.place(greenPortal, atStartColumn: 1, startRow: 5, atEndColumn: 5, endRow: 1)
var gemCounter = 0
while gemCounter < 8 {
moveForward()
if gemCounter == 4 {
turnLeft()
turnLeft()
} else {
turnLeft()
}
moveForward()
collectGem()
gemCounter += 1
turnLeft()
turnLeft()
}
解説
今回は、ワープ(Portal)を設置します。
ワープの色は様々に設定できますが、
今回は最初から緑色に設定し、『greenPortal』という名前がつけられています。
色んな色のワープを作らなければならない場合もあるので、
後で見てわかりやすいインスタンスの名前をつけた方がいいですね。
ちなみに、元々今回は緑色の四角形が表示されています。
ここは、基本的な色の場合、.green
、.pink
、.yellow
のように
ドットで表現することができます。
let pinkPortal = Portal(color: .pink)
のような感じです。
また、(color: )
の場所をクリックすると、パレットが表示されて
好きな色を選ぶこともできます。
(設定により、もっと複雑な色を指定することもできます)
ワープを設置するときは、色に加えて、入るワープと出るワープの座標を同時に設定しなければいけません。
どちらか一方だけだとエラーになるので、注意しましょう。
入口側の列 | atStartColumn |
---|---|
入口側の行 | startRow |
出口側の列 | atEndColumn |
出口側の行 | endRow |
要点まとめ
・ワープの設置は、スタートとエンドの2箇所の座標が必要
解答例その2
let greenPortal = Portal(color: .green)
world.place(greenPortal, atStartColumn: 1, startRow: 5, atEndColumn: 5, endRow: 1)
func collectAndTurn() {
collectGem()
moveForward()
turnRight()
moveForward()
turnRight()
turnRight()
}
greenPortal.isActive = false
for i in 1 ... 4 {
collectAndTurn()
}
greenPortal.isActive = true
moveForward()
moveForward()
turnRight()
turnRight()
greenPortal.isActive = false
for i in 1 ... 4 {
collectAndTurn()
}
スポンサーリンク