Menu
CoddyTech

Bases des tableaux 2D

Fait partie de la section Logique et flux d’exécution du Journey GDScript de Coddy. Leçon 12 sur 78.

Un tableau 2D stocke des valeurs en lignes et en colonnes, comme un tableau ou les cases d’une carte de jeu. En GDScript, un tableau 2D est un tableau dont les éléments sont des tableaux : chaque tableau interne constitue une ligne.

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

Dans cette carte, 0 représente le sol, 1 un mur et 2 une pièce. Écrire une ligne par rangée permet de garder la grille lisible, et GDScript accepte également le littéral entier sur une seule ligne.

print() affiche un tableau 2D sur une seule ligne, avec chaque ligne entre ses propres crochets :

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

size() sur le tableau externe compte les lignes. level[0] est la première ligne, un tableau ordinaire, donc level[0].size() compte les colonnes :

print(level.size()) # 3 lignes
print(level[0].size()) # 4 colonnes

Une boucle for parcourant le tableau externe vous donne une ligne à chaque passage :

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

Les cellules peuvent être de n’importe quel type : [["X", "O"], ["O", "X"]] est une grille de chaînes de caractères. Vous pouvez aussi partir d’un tableau vide et append() des lignes entières :

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

Défi

Facile

Construis la carte d’un petit donjon. Crée un tableau 2D appelé level avec ces 4 lignes, dans cet ordre :

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

Chaque ligne est un tableau de 5 nombres. Affiche ensuite le nombre de lignes et le nombre de colonnes à l’aide de size(), avant que la boucle donnée affiche les lignes. La sortie doit être :

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

Essayez vous-même

extends Node

func _ready():
	# Remplacez [] par la carte du donjon
	var level := []

	# Affichez ici le nombre de lignes et de colonnes

	for row in level:
		print(row)
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique et flux d’exécution

Entraînez-vous par vous-même : Compilateur GDScript en ligne