Swift Playgrounds

コードを学ぼう2【ブロックを積む】解答例と解説

ブロックを積む

解答例

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型だけでなく様々な『型』を入れることができるが、型の種類は一つにする