Index error: list index out of range
Résolu
A voir également:
- Index error: list index out of range
- Index téléphonique - Guide
- Telecharger index - Télécharger - Gestion de fichiers
- Fan error lenovo - Forum Refroidissement
- Playback error reconnect in 3s (1/5) francais - Forum Box et Streaming vidéo
- Whea error occt - Forum Processeur
3 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
dans carte[j][i], i et j doivent être plus petits que 11.
def maps(): for j in range(11): for i in range(11): if carte[j][i]==0: fill_rect(j*20,i*20,20,20,(0,150,0))
Salut,
Il serait judicieux de passer des arguments à ta fonction de façon à ce que tu n'as pas besoin de la modifier au cas où tu souhaites changer la carte, les dimensions des rectangles ou leurs couleurs.
La carte ne devant pas être modifiée, il est aussi opportun d'utiliser un tuple au lieu d'une liste.
Ce qui pourrait aboutir à :
board = ( (0, 0, 0, 0, 0, 0, 0, 4, 5, 6, 6), (0, 0, 0, 0, 0, 0, 0, 4, 5, 6, 6), (0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 6), (0, 0, 0, 0, 1, 0, 0, 0, 4, 5, 6), (0, 0, 0, 1, 1, 1, 0, 0, 4, 5, 6), (0, 0, 0, 0, 2, 0, 0, 0, 0, 4, 5), (3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 4), (3, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0), (3, 3, 0, 0, 0, 0, 1, 1, 1, 0, 0), (3, 3, 3, 3, 0, 0, 0, 2, 0, 0, 0), (3, 3, 3, 3, 3, 0, 0, 2, 0, 0, 0), ) map_colors = ( (0, 150, 0), (0, 175, 0), (100, 100, 0), (0, 0, 100), (150, 150, 150), (100, 100, 100), (50, 50, 50), ) def draw_map(board, colors, cell_width, cell_height): line_size = len(board[0]) for y in range(len(board)): for x in range(line_size): fill_rect( x * cell_width, y * cell_height, cell_width, cell_height, colors[board[y][x]], ) draw_map(board, map_colors, 20, 20)
Utiliser un conteneur pour les couleurs rend la fonction bien plus concise.
On pourrait auusi plutôt qu'utiliser des ranges, se servir de la fonction enumerate de python.
def draw_map(board, colors, cell_width, cell_height): for y, line in enumerate(board): for x, value in enumerate(line): fill_rect( x * cell_width, y * cell_height, cell_width, cell_height, colors[value], )