配列(はいれつ)を学ぼう
次の行で、マップ(地形パターン)を設定しています。
こんな感じですね↓
map = [[1,2,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,3,3,3,3,3,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,3]];
|
ゲーム画面と見比べると分かりますが、値が1の場所に1番の絵、値が2の場所に2番の絵、という具合に表示しています。
前回の「変数」はデータ(数値)を1つしか入れられませんが、この「配列」は複数のデータを入れておくことができます。
基本の書き方は↓な感じ。 [] 内にデータを入れます。
この map 内の、最初のデータを取得したい場合は、map[0] とします。
2番目を取り出す時は、map[1] です。
実際にプログラムを動かして確認してみましょう。
Pythonを起動して↓を1行ずつ入力してみてください。(起動方法は01を参照)
すると、次の行に、 100 と出力されます。
続いて、map[1]; と入力すると、200 が出力されます。
尚、この map配列の最初のデータを変更したい時は、
とします。
これで、map[0]のデータが300になりました。
試しに↓を入力してみてください。
※Pythonは、終了する(ウインドウを閉じる)と過去の設定が無くなります。数値を確認する場合は、続けて行ってください。
2次元配列を学ぼう
さて、サンプルで使用している map は、[] が2つ重なっています。 [[ …データ… ], [ …データ… ]] こんな感じで
これが「2次元配列」で、縦と横のデータを持っています。
短く設定すると、こうなります↓
map = [[0,1], [100,200]];
|
ここから、左上(縦が0番目、横も0番目)のデータを取り出す時は、
とします。(0が表示されます)
右上(縦が0番目、横が1番目)のデータは、
となります。(1が表示されます)
左下(縦が1番目、横が0番目)のデータは、
となります。(100が表示されます)
つまり、縦軸を y 、横軸を x とした場合、
map[y][x] という形になっています。
・・・読んでるだけだと分かり難いですよね。
プログラムは、実際に動かしてみると分かりやすいので、
「変数」や「配列」のデータを、設定したり、変更したり、出力したりしてみてください。
尚、「変数」と「配列」を組み合わせて、↓のようなこともできます。
x = 2;
map = [100,200,300];
map[x];
|
これをPythonで実行していくと、最後に map[2] の中身、300 が表示されます。
如何でしょうか?
「変数」と「配列」は超重要なので、しっかり理解してから先に進んでください。
|