Motifs courants des tableaux 2D
Fait partie de la section Logique et flux d’exécution du Journey GDScript de Coddy. Leçon 17 sur 78.
Quelques façons de parcourir une grille reviennent souvent. Ces exemples utilisent une grille carrée de taille n :
var grid := [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
var n := grid.size()Diagonales. Sur la diagonale principale, l’indice de ligne est égal à l’indice de colonne : grid[i][i]. Sur l’antidiagonale, du coin supérieur droit au coin inférieur gauche, la colonne est n - 1 - i. Une seule boucle suffit :
for i in range(n):
print(grid[i][i], " ", grid[i][n - 1 - i])1 3
5 5
9 7Lignes, colonnes et bordures. Fixe un indice et parcours l’autre. La ligne du haut est grid[0] et la ligne du bas est grid[n - 1]. Pour une colonne, c reste fixe tandis que la ligne change :
var left_total := 0
for r in range(n):
left_total += grid[r][0] # colonne de gauche : 1 + 4 + 7
print(left_total) # 12Voisins. Dans les jeux sur grille, on regarde souvent les cellules autour d’une position : en haut, en bas, à gauche et à droite. Stocke les quatre déplacements sous forme d’un tableau de paires [row, column], et ignore ceux qui sortent de la grille :
var r := 0
var c := 1
for step in [[-1, 0], [1, 0], [0, -1], [0, 1]]:
var nr: int = r + step[0]
var nc: int = c + step[1]
if nr >= 0 and nr < n and nc >= 0 and nc < n:
print(grid[nr][nc])La cellule grid[0][1] se trouve sur la bordure supérieure, elle a donc 3 voisins : 5, 1 et 3.
Défi
FacileÉcris une fonction nommée print_patterns avec un paramètre, grid : un tableau 2D carré d’entiers (déclare-le comme grid: Array). Elle affiche six lignes, avec les valeurs séparées par un seul espace :
Main diagonal:et les cellules dont l’indice de ligne est égal à l’indice de colonneAnti-diagonal:et les cellules allant du coin supérieur droit au coin inférieur gaucheTop row:et la première ligneBottom row:et la dernière ligneLeft column:et la première colonne, de haut en basRight column:et la dernière colonne, de haut en bas
Pour la grille [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]], la sortie est :
Main diagonal: 1 6 11 16
Anti-diagonal: 4 7 10 13
Top row: 1 2 3 4
Bottom row: 13 14 15 16
Left column: 1 5 9 13
Right column: 4 8 12 16Les tests appellent eux-mêmes print_patterns(). Ne l’appelle pas et ne retourne rien.
Essayez vous-même
func print_patterns(grid: Array):
# É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