スポンサーリンク
スポンサーリンク
解答例
var blockLocations = [
Coordinate(column: 0, row: 0),
Coordinate(column: 3, row: 3),
Coordinate(column: 0, row: 3),
Coordinate(column: 3, row: 0),
]
for coordinate in blockLocations {
for i in 1 ... 5 {
world.place(Block(), at: coordinate)
}
}
解説
前回はInt型の整数の値を[]に入れましたが、今回は座標です。
長いので改行しているだけで、本当は
var blockLocations = [ , , , , ]
の形になっています。
[]の中の値が、順番に取り出され、ループに使われています。
今回はblockLocationsで指定された座標の場所に、forループで積み重ねられます。
coordinateという変数に座標の値が入っており、placeメソッド内で使われます。
for-inループのなかにforループを置いて、同じ座標に5つ積み重ねることができました。
ゴールすると、以下のメッセージが現れます。
place(item: Item, at: Coordinate)メソッドはCoordinate(座標)型の入力を取り、
place(item: Item, atColumn: Int, row: Int)は2つのInt値を取ります。
今回は、Int型ではなくCoordinate型で配置したいため、
place(item: Item, at: Coordinate)
メソッドを使いました。
要点まとめ
・配列の中は、Int型だけでなく様々な『型』を入れることができるが、型の種類は一つにする
スポンサーリンク