配列 3. ブロックを積む

配列の各部屋には

のように整数を入れるだけでなく、様々な型のオブジェクトを入れることができます。

このステージでは列番号と行番号をひとまとまりにしたCoordinate(座標)型というオブジェクトを配列に格納します。ちょっと入れ子のようでややこしいですが、「カンマで区切られた数だけ、同じ型のものが順番に入れられる」という意味では整数の時と全く同じなので気を楽にしてください。

まずは正解例はこんな感じになります。

3行目から8行目は長いので改行していますが、[]でひとまとまりで、4つのCoodinate型オブジェクトをblockLocationsという名前の配列に入れていることになります。

もしピンとこなければこういうコードで考えてみてください。

正解例コードの14行目でもやっていますが、「後で名前で参照できなくて良いオブジェクトはいきなり型名を指定してもOK」でしたよね。「ステージを作る」章の「階段を置く」で出てきた省略記法です。これと同じことをすると、上のコードは、正解例コードの3〜8行目のように書けるわけです。

ということで、blockLocationには4箇所の座標(ステージの4隅)を示す4つのCoordinate型オブジェクトが入りました。これをfor〜in文を使って繰り返します。blockLocation配列から1つずつ取り出されてcoodinateという名前でループ内で利用可能になるので、13行目のworld.place文でat:パラメーターの中身が置き換えられます。最初のループでは、

としたのと同じことになります。2ループ目は

ですね。

改善希望!役に立った! (+5 rating, 9 votes)
読み込み中...

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です