コウです、よろしくお願いします!
「ゼロからプログラミングを始める」人に役立つ情報を発信しています。
今回からは「配列」ユニットに入っていきます。
少し複雑な話も出てきますが、頑張って攻略していきましょう!!
それではDay80「情報をまとめて保存」です。どうぞ!!
解答例
まずは解答例を確認しましょう。
コードは次のようになります。
短くてシンプルですが、知らない要素が詰まっていますね。
解答例を動画で確認する
上記のコードを実行した結果がこちらになります。
ステージ攻略「情報をまとめて保存」
ステージを攻略していきましょう!
クリア条件
今回のクリア条件は、『ステージのすべてのマスにキャラクターを1体ずつ置く』ことです。
キャラクターを配置する時には、
world.place(item: Item, atColumn: Int, row: Int)
を使っていましたが、今回のやり方は違います。
新しい方法を学習していきましょう!
配列:[ ]
入力画面には画像のようなコードがあらかじめ入力されています。
『var』なので、『rows(行)』という名前の変数を宣言するもののようです。
今まで変数を宣言する時には、
ひとつの名前に対してひとつの数字
しか宣言できませんでしたよね。
例えば次のように、
var gemCounter = 0
var swichCounter = 0
ひとつひとつ宣言する必要がありました。
配列を使えばその必要がなくなるようです!
コードを実行してみる
まずは説明文にもあるようにコードを実行してみましょう。
4体のホッパーが出現しました。
出現したマスの座標を調べると、
(0,0)(0,1)(0,3)(0,4)です。
『( )』の中の右側の数字に注目してください。
『0』『1』『3』『4』ですね。
では、『配列:[ ]』の中はどうでしょう。
同じように『0』『1』『3』『4』です。
これらからわかることは、
『placeCharacters(at: rows)』は『rowsの中に含まれている数字を座標の右側の数字として使ってキャラクターを置く』というもののようです。
少しわかりづらかったと思うので入力されている値で言うと、
[0,1,3,4] なので、(0,0)(0,1)(0,3)(0,4)に
キャラクターを配置したということですね。
左側の数字(列)が0なのは、
何も指定していないからです。
配列に値を追加する
クリア条件に戻りましょう。
『ステージのすべてのマスにキャラクターを1体ずつ置く』ことでした。
では、足りていないのはどこでしょう。
コードを実行した後に、ホッパーがいない場所の座標を確かめてみました。
(0,2)と(0,5)ですね。
『2』と『5』をrowsの配列に追加します。
追加する時には説明文にもありますが、
『[ ]をドラッグ』するか『,』をつけて数字を入れれば大丈夫です。
あとは実行すれば6体のホッパーが出てきてステージクリアです!
まとめ:情報をまとめて保存
配列が新たに登場しました。
初めてだとわかりにくいですが、
何度も問題を解いて慣れていきましょう!
今回のポイントを振り返ります。
- 配列:[ ]は変数のひとつ。
- 配列を使うと、変数をいくつも宣言しなくてよい。
次回はDay81「反復処理を試す」でお会いしましょう!それでは!!