Menu
CoddyTech

Tableaux irréguliers

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

Les lignes d’un tableau 2D n’ont pas besoin d’avoir la même longueur. Un tableau 2D dont les lignes ont des longueurs différentes est un tableau irrégulier. Ici, chaque ligne contient les scores d’un joueur, et les joueurs ont joué un nombre différent de manches :

var scores := [
	[90, 85, 70],
	[60],
	[75, 80]
]
print(scores[0].size()) # 3
print(scores[1].size()) # 1

Dans un tableau irrégulier, scores[0].size() n’est pas la longueur de chaque ligne. Parcourez les colonnes de la ligne actuelle avec scores[r].size() :

for r in range(scores.size()):
	var total := 0
	for c in range(scores[r].size()):
		total += scores[r][c]
	print("Player ", r + 1, ": ", total)
Player 1: 245
Player 2: 60
Player 3: 155

Une boucle qui utilise toujours la longueur de la première ligne dépasse la fin des lignes plus courtes : scores[1][2] est une erreur, car la ligne 1 n’a que l’index 0. for value in row s’adapte toujours à la ligne qu’elle parcourt.

Tu construis un tableau irrégulier comme une grille, avec une longueur différente pour chaque ligne. Dans ce triangle, la ligne r comporte r + 1 cellules :

var triangle := []
for r in range(4):
	var row := []
	for c in range(r + 1):
		row.append("*")
	triangle.append(row)
for row in triangle:
	print("".join(row))
*
**
***
****

Une ligne peut même être vide : [[1, 2], [], [3]] est un tableau irrégulier valide comportant trois lignes.

challenge icon

Défi

Facile

Écris une fonction nommée make_triangle avec un paramètre int n. Elle renvoie un tableau irrégulier de n lignes :

  • La ligne 1 a 1 cellule, la ligne 2 a 2 cellules, et ainsi de suite, jusqu’à la ligne n, qui a n cellules.
  • En comptant les lignes et les colonnes à partir de 1, chaque cellule contient le produit de son numéro de ligne par son numéro de colonne. La cellule de la ligne 3, colonne 2 contient 3 * 2 = 6.

Par exemple, make_triangle(3) renvoie :

[[1], [2, 4], [3, 6, 9]]

Les tests appellent eux-mêmes make_triangle() et vérifient le tableau renvoyé. Ne l’appelle pas et n’affiche rien.

Essayez vous-même

func make_triangle(n: 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