配列 2. 反復処理を試す

for文によるループと配列の組み合わせを学ぶステージです。配列に入っているひとつひとつの要素(オブジェクト)に対して同じ処理をさせることができます。全く同じ処理というだけでなく、要素毎の違い活用した処理ができるのが強みです。
例えばこのステージでは、0〜5番目の各列に宝石とスイッチを配置します。今までのやり方だと、こんな風になります。

ほぼ同じパターンが5回繰り返されますが、残念ながらatColumn:パラメーターが違うので単純なfor文ループにはできません。
まさにこんな時に、配列を使った繰り返しが役に立ちます。
同じforで始まりますが、

のように書きます。これで「(配列名)の中にある要素ひとつひとつを(ループ内での変数名)に入れつつ、(ループさせたい処理)を実行」という意味になります。
正解例のコードを見てみましょう。

columns配列の中身が前から1つずつ取り出され、columnという変数に入れられてループ内の処理が行われます。1ループ目はcolumnの中身は0です。なので、world.placeメソッドの中のatColumn:パラメーターには0と書いたのと同じことになります。
そして最初のループが終わって繰り返される時、columnには2番目の値の1がセットされます。つまり2回目のループではatColumn:は1になります。以下、atColumn:が2,3,4,5と変化しながら繰り返されていきます。最終的に全ての陸地にスイッチと宝石が並んでいることでしょう。
このように、ちょっとずつ違う処理を繰り返す時に、その違う部分を変数に置き換えておき、このfor〜in文で毎回変数の中身を変えてやる方法が利用できます。

配列 1. 情報をまとめて保存

配列とは変数の一種ですが、中に仕切りがあってそれぞれの部屋に通し番号がついているものを想像してください。仕切りがあるので中に複数の値やオブジェクトを格納しつつ、全体をひとまとまりとして扱うことができます。また中身を通し番号で指定できるのでループと非常に相性が良いのが特徴です。
出題文通り、まずはそのまま実行してみましょう。4体のキャラクターが出現します。これは、最後の行にある

がrowsという配列変数の中のひとつひとつの数字を座標にしてキャラクターを並べてくれます。placeCharactersコマンドについてはあまり深く考える必要はありません。ともかくrowsの中に0が入っていたら(0,0)に、1があれば(0,1)にキャラクターが出ると思っておきましょう。
さて、最初の状態では、4体しか出てきません。空いたコマが2つあります。(0,2)と(0,6)ですね。逆にいうと、(0,0)、(0,1)、(0,3)、(0,4)に出現しています。これがそのまま先頭行の

から来ているわけです。足りない数字を追加してやりましょう。数字と数字は半角カンマで区切ります。

(標準の各英文コメントの後ろに訳を入れてあります)