このステージは特にクリア条件はありません。どこか一ヶ所でも変更すればクリア扱いになるようです。好きなようにコードを修正してみましょう。
以下、英文コメントの日本語訳だけ追加しておきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
// Create coordinate zones. // (各ゾーンの座標配列を作成) let allCoordinates = world.allPossibleCoordinates //全座標 let backRow = world.coordinates(inRows: [9]) //最後列 let insideSquare = world.coordinates(inColumns: [4,5], intersectingRows: [4,5]) //真ん中の正方形領域 let squareCorners = world.coordinates(inColumns: [2,3,6,7], intersectingRows: [3,7]) //上記を取り囲む4角の座標 // Place platform locks. // (ロックを配置) 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: 8, row: 1)) let backLock = PlatformLock(color: .blue) world.place(backLock, at: Coordinate(column: 4, row: 1)) // Place characters and platforms. // キャラクターとプラットフォーム(上下する台)を配置 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) } 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) } // Create arrays from existing characters. // (存在する全キャラクターの配列を作成) let blus = world.existingCharacters(at: backRow) let hoppers = world.existingCharacters(at: insideSquare) let experts = world.existingExperts(at: squareCorners) // Do cool stuff 🤓. // (イカすことをしよう) squareLock.movePlatforms(up: true, numberOfTimes: 3) for hopper in hoppers { hopper.grumbleGrumble() //←ここだけちょっと変えたらクリア判定になりました } cornerLock.movePlatforms(up: true, numberOfTimes: 7) for expert in experts { expert.breakItDown() } for blu in blus { blu.jump() } backLock.movePlatforms(up: true, numberOfTimes: 11) for blu in blus { blu.turnLeft() blu.turnLeft() blu.argh() } |
19、24、29行目のfor〜in文で、ループ内の一時変数名がどれもcoorとなっていますね。coordinateの略でしょう。別々のループで同じ変数名を使ってますが、それぞれの中で使い捨てなので構いません。ただしあるループの中で他のループをネスト(入れ子)する時は気をつけましょう。