Menu
CoddyTech

2次元配列の基礎

CoddyのGDScriptジャーニー「ロジックとフロー」セクションの一部。レッスン 12/78。

2次元配列は、テーブルやゲームマップのタイルのように、行と列に値を格納します。GDScriptでは、2次元配列は要素が配列である配列です。各内側の配列が1行に相当します。

var level := [
	[1, 1, 1, 1],
	[1, 0, 2, 1],
	[1, 1, 1, 1]
]

このマップでは、0は床、1は壁、2はコインです。1行ずつ書くとグリッドが読みやすくなります。また、GDScriptではリテラル全体を1行で書くこともできます。

print()は2次元配列を1行で表示し、各行はそれぞれ独自の角括弧で囲まれます:

print(level)
[[1, 1, 1, 1], [1, 0, 2, 1], [1, 1, 1, 1]]

外側の配列に対するsize()は、行数を数えます。level[0]は最初の行で、通常の配列なので、level[0].size()は列数を数えます。

print(level.size()) # 3行
print(level[0].size()) # 4列

外側の配列に対するforループでは、1回の反復ごとに1行が得られます。

for row in level:
	print(row)
[1, 1, 1, 1]
[1, 0, 2, 1]
[1, 1, 1, 1]

セルはどの型でもかまいません。[["X", "O"], ["O", "X"]]は文字列のグリッドです。空の配列から始めて、行全体をappend()することもできます。

var board := []
board.append(["X", "O", "X"])
board.append(["O", "X", "O"])
print(board.size()) # 2
challenge icon

チャレンジ

簡単

小さなダンジョンのマップを作成します。次の4行をこの順序で持つ、levelという名前の2次元配列を作成してください。

1 1 1 1 1
1 0 2 0 1
1 0 1 3 1
1 1 1 1 1

各行は5つの数値からなる配列です。次に、指定されたループで各行を出力する前に、size()を使って行数と列数を出力してください。出力は次のとおりです。

Rows: 4
Columns: 5
[1, 1, 1, 1, 1]
[1, 0, 2, 0, 1]
[1, 0, 1, 3, 1]
[1, 1, 1, 1, 1]

自分で試してみよう

extends Node

func _ready():
	# [] をダンジョンのマップに置き換えてください
	var level := []

	# ここで行数と列数を出力してください

	for row in level:
		print(row)
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン

自分で練習してみよう: GDScriptオンラインコンパイラ