大宮盆栽デイズ - Omiya Bonsai Days -

冗談めかす埼玉のファインマン

違う方法で配列を作る@コードを学ぼう2

// 違う方法で配列を作る@コードを学ぼう2
// ステージの座標情報を配列 allCoordinates に代入する
let allCoordinates = world.allPossibleCoordinates


for coordinate in allCoordinates {
    // Change height to be the sum of the column and row for each coordinate.
    // height(高さ)を列パラメータ+行パラメータを足した数にする
    let height = coordinate.column + coordinate.row
    
    // height(高さ)のぶん、ブロックを積む
    for i in 0...height {
        world.place(Block(), at: coordinate)
    }
    
    // 8 =< height < 10 ならばキャラクターの blu を配置する
    // 9 < height ならばキャラクターの hopper を配置する
    if height >= 8 && height < 10 {
        world.place(Character(name: .blu), at: coordinate)
    } else if height > 9 {
        world.place(Character(name: .hopper), at: coordinate)
    }
}

// Initialize an array of existing characters in the puzzle world.
// (訳:キャラクターの配列(Array)を初期化する)
let characters = world.existingCharacters(at: allCoordinates)

// For each of the characters, perform a set of actions.
// (訳:それぞれのキャラクターのアクションを決定する)
for character in characters {
    character.argh()
    character.jump()
    character.jump()
    character.turnRight()
    character.jump()
    character.jump()
    character.breakItDown()
    character.danceLikeNoOneIsWatching()
    character.grumbleGrumble()
    character.turnUp()
}

youtu.be