スポンサーリンク
スポンサーリンク
解答例
// 座標の領域を作成します。
let allCoordinates = world.allPossibleCoordinates
let backRow = world.coordinates(inRows: [11])
let insideSquare = world.coordinates(inColumns: [5,6], intersectingRows: [5,6])
let squareCorners = world.coordinates(inColumns: [3,4,7,8], intersectingRows: [4,8])
// 地面を動かす鍵を置きます。
let squareLock = PlatformLock(color: .green)
world.place(squareLock, at: Coordinate(column: 1, row: 1))
let cornerLock = PlatformLock(color: .pink)
world.place(cornerLock, at: Coordinate(column: 10, row: 1))
let backLock = PlatformLock(color: .blue)
world.place(backLock, at: Coordinate(column: 5, row: 1))
// キャラクターと地面を置きます。
for coor in insideSquare {
world.place(Platform(onLevel: 4, controlledBy: squareLock), at: coor)
world.place(Character(name: .hopper), at: coor)
}
for coor in squareCorners {
world.place(Platform(onLevel: 4, controlledBy: cornerLock), at: coor)
world.place(Expert(), at: coor)
world.place(Gem(), at: coor)
}
for coor in backRow {
world.place(Platform(onLevel: 2, controlledBy: backLock), at: Coordinate(column: coor.column, row: coor.row + 1))
world.place(Character(name: .blu), facing: north, at: coor)
}
// ステージ内のすでにいるキャラクターの配列を作成します。
let blus = world.existingCharacters(at: backRow)
let hoppers = world.existingCharacters(at: insideSquare)
let experts = world.existingExperts(at: squareCorners)
// 好きなことをしてみましょう🤓。
squareLock.movePlatforms(up: true, numberOfTimes: 3)
for hopper in hoppers {
hopper.turnUp()
}
cornerLock.movePlatforms(up: true, numberOfTimes: 7)
for expert in experts {
expert.collectGem()
}
for blu in blus {
blu.jump()
}
backLock.movePlatforms(up: true, numberOfTimes: 11)
for blu in blus {
blu.turnLeft()
blu.turnLeft()
blu.danceLikeNoOneIsWatching()
}
let frontRow = world.coordinates(inRows: [0])
for coor in frontRow {
world.place(Gem(), at: coor)
}
for coor in frontRow {
world.removeItems(at: coor)
}
let space = allCoordinates
for coordinate in space {
world.removeAllBlocks(at: coordinate)
}
解説
ついに最後の課題までやってきました。
今回の解答例は、今までのものをコピペして、数値を若干変えたりしているだけです。
宙に浮いてる感じにしてみました。
ぜひ、課題にあるような内容を元に
オリジナリティあふれる自分だけのステージを作ってみてください。
今までやってきたことを振り返ったり、
思い出してアウトプットする作業は大切です。
エラーが出てもくじけず、プログラミングを楽しんでいきましょう。
色々、つたない説明ですみませんでした。
もっとちゃんとした(笑)書籍などが出ているので、
どうしても分からない場合は、そういうのも駆使して頑張ってください。
これで『コードを学ぼう2』が終わります。
解答例と言いつつ、解答は複数ある場合があり
ひとつの参考としていただけたら幸いです。
もっと良いコード、考え方はたくさんあると思います。
それから、何かミスがあったり動作がおかしかったりする場合、
ぜひお知らせください。
出来る限り誰かのお力になれるよう、改善していこうと思っています。
スポンサーリンク