Menu
CoddyTech

Accéder aux éléments d’un tableau 2D

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

Pour accéder à une cellule d’un tableau 2D, utilise deux indices : le premier sélectionne la ligne, le second sélectionne la colonne de cette ligne. Les deux commencent à 0.

var level := [
	[1, 1, 1, 1],
	[1, 0, 2, 1],
	[1, 1, 1, 1]
]
print(level[1][2]) # 2 (ligne 1, colonne 2)
print(level[0][0]) # 1

level[1] renvoie la ligne [1, 0, 2, 1], puis [2] sélectionne l’index 2 de cette ligne. Les indices négatifs se comptent à partir de la fin, comme dans n’importe quel tableau : level[-1][-1] correspond à la cellule en bas à droite.

Attribue une valeur à une case pour la modifier. Lorsque le joueur ramasse la pièce, sa tuile devient du sol :

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

Un indice en dehors de la grille provoque une erreur qui arrête le programme : level[3][0] échoue parce que les lignes vont de 0 à 2. Lorsque les indices proviennent d’une entrée ou d’un calcul, vérifie-les d’abord par rapport à la taille de la grille :

var row := 2
var col := 5
if row >= 0 and row < level.size() and col >= 0 and col < level[row].size():
	print(level[row][col])
else:
	print("Outside the map")

Cela affiche Outside the map, car la colonne 5 n’existe pas. and s’arrête à la première condition qui est false, donc level[row] n’est lu que lorsque la ligne existe.

challenge icon

Défi

Facile

Écris une fonction nommée get_tile avec trois paramètres :

  1. grid : un tableau d’entiers à 2 dimensions (déclare-le comme grid: Array)
  2. row : un indice de ligne
  3. col : un indice de colonne

Elle renvoie la valeur à cette ligne et à cette colonne. Si row ou col est en dehors de la grille (inférieur à 0, ou supérieur ou égal au nombre de lignes ou de colonnes), elle renvoie -1 à la place. Les indices négatifs sont considérés comme étant en dehors de la grille.

Par exemple, get_tile([[1, 2, 3], [4, 5, 6]], 1, 2) renvoie 6, et get_tile([[1, 2], [3, 4]], 2, 1) renvoie -1.

Les tests appellent eux-mêmes get_tile() et vérifient la valeur qu’elle renvoie. Ne l’appelle pas et n’affiche rien.

Essayez vous-même

func get_tile(grid: Array, row: int, col: int):
	# Écrivez le code ici
	pass
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