Menu
CoddyTech

Grundlagen zu 2D-Arrays

Teil des Abschnitts Logik & Ablaufsteuerung der GDScript-Journey von Coddy. Lektion 12 von 78.

Ein 2D-Array speichert Werte in Zeilen und Spalten, wie in einer Tabelle oder in den Kacheln einer Spielkarte. In GDScript ist ein 2D-Array ein Array, dessen Elemente Arrays sind: Jedes innere Array ist eine Zeile.

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

In dieser Karte steht 0 für den Boden, 1 für eine Wand und 2 für eine Münze. Wenn du pro Zeile eine Zeile schreibst, bleibt das Raster übersichtlich; GDScript akzeptiert das gesamte Literal auch in einer einzigen Zeile.

print() zeigt ein 2D-Array in einer Zeile an, wobei jede Zeile in eigenen eckigen Klammern steht:

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

size() beim äußeren Array zählt die Zeilen. level[0] ist die erste Zeile, ein gewöhnliches Array, daher zählt level[0].size() die Spalten:

print(level.size()) # 3 Zeilen
print(level[0].size()) # 4 Spalten

Eine for-Schleife über das äußere Array liefert dir pro Durchlauf eine Zeile:

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

Die Zellen können einen beliebigen Typ haben: [["X", "O"], ["O", "X"]] ist ein Raster aus Zeichenketten. Du kannst auch mit einem leeren Array beginnen und ganze Zeilen mit append() hinzufügen:

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

Aufgabe

Einfach

Erstelle die Karte eines kleinen Verlieses. Erstelle ein 2D-Array namens level mit diesen 4 Zeilen in dieser Reihenfolge:

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

Jede Zeile ist ein Array aus 5 Zahlen. Gib dann die Anzahl der Zeilen und die Anzahl der Spalten mit size() aus, bevor die vorgegebene Schleife die Zeilen ausgibt. Die Ausgabe muss lauten:

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

Probier es selbst

extends Node

func _ready():
	# Ersetze [] durch die Dungeon-Karte
	var level := []

	# Gib hier die Anzahl der Zeilen und Spalten aus

	for row in level:
		print(row)
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablaufsteuerung

Übe selbstständig: Online-GDScript-Compiler