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]) # 1level[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.
Défi
FacileÉcris une fonction nommée get_tile avec trois paramètres :
grid: un tableau d’entiers à 2 dimensions (déclare-le commegrid: Array)row: un indice de lignecol: 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
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
1Les chaînes de caractères en profondeur
Méthodes des chaînesRechercher dans les chaînesRemplacer et supprimer les espacesDécouper et joindreRécapitulatif - Vérifier un nom d’utilisateur4Dictionnaires, partie 2
Dictionnaires imbriquésTableaux de dictionnairesFusionner des dictionnairesCopier des dictionnairesRécapitulatif - Compteur de fréquence7Énumérations
Qu’est-ce qu’une énumération ?Définir une énumérationValeurs d’une énumérationÉnumérations avec matchRécapitulatif - Feu de circulation10Fonctions avancées
Renvoyer plusieurs valeursFonctions lambda, partie 1Fonctions lambda, partie 2Récapitulatif - Tri avec lambdaFonctions récursives, partie 1Fonctions récursives, partie 2Récapitulatif - Somme d’un tableau imbriqué13Système de gestion des stocks
Présentation du projetAjouter un article2Prise de décision avancée
Correspondance avec des variablesGardes de correspondanceMotifs de tableauMotifs de dictionnaireVérifications d’appartenanceRécapitulatif – Analyseur de commandes5Application de carnet d’adresses
Afficher le menuAjouter un contact8Gestionnaire des dossiers étudiants
Aperçu du projetAjouter un étudiant3Tableaux multidimensionnels
Bases des tableaux 2DAccéder aux éléments d’un tableau 2DBoucles imbriquées avec des tableaux 2DRécapitulatif - Tableaux 2DTableaux irréguliersMotifs courants des tableaux 2DRécapitulatif - Plateau de jeu6Les ensembles avec les dictionnaires
Qu’est-ce qu’un ensemble ?Un dictionnaire comme ensembleAjouter et supprimerUnion et intersectionDifférence d’ensemblesRécapitulatif – Supprimer les doublons9Agrégation avancée de données
Additionner des valeursTrouver le minimum et le maximumTri personnaliséRécapitulatif - Trieur de dictionnairesEntraînez-vous par vous-même : Compilateur GDScript en ligne