Menu

Index out of range

Ponydu38 - 12 févr. 2018 à 15:48 - Dernière réponse : le père. 6051 Messages postés mardi 15 mai 2012Date d'inscription 20 mai 2018 Dernière intervention
- 12 févr. 2018 à 16:25
Bonjour,

Je suis en classe préparatoire et nous avons un projet à réaliser en informatique : nous devons coder le jeu 2048. La première tâche est d’implémenter une fonction qui prend en entrée une ligne d’un tableau (comme [ 2, 0, 2, 4]) et qui retourne True si un déplacement dans la direction LEFT modifie l’état de la ligne ou False sinon. Elle retourne donc True ssi la ligne contient au moins une tuile (un nombre) à droite d’une case vide ou contient deux nombres côte-à-côte identiques.

J'ai donc écrit le programme Python ci-dessous. Le problème est que mon programme ne marche que lorsqu'une des conditions est vérifiées (donc quand le déplacement est possible). Quand le déplacement est impossible, lorsque le programme arrive à la dernière valeur de i, le programme ne trouve pas la valeur i+1 et me renvoi "List index out of range". Je ne sais pas comment y remédier. Pourriez-vous m'aider s'il vous plait?

def slide_is_possible(line):
for i in range(len(line)):
if line[i] == 0 and line[i+1] != 0:
return True
if line[i] == line[i+1]:
return True
return False
raise NotImplementedError()

print(slide_is_possible([2,0,2,4])) #Doit renvoyer True
print(slide_is_possible([2,2,2,2])) #Doit renvoyer True
print(slide_is_possible([4,4,0,4])) #Doit renvoyer True
print(slide_is_possible([2,4,2,0])) #Doit renvoyer False (Ne marche pas)
print(slide_is_possible([2,4,2,4])) #Doit renvoyer False (Ne marche pas)
Afficher la suite 

Votre réponse

1 réponse

le père. 6051 Messages postés mardi 15 mai 2012Date d'inscription 20 mai 2018 Dernière intervention - 12 févr. 2018 à 16:25
0
Utile
Bonjour

Je ne connais pas python, mais
for i in range(len(line)-1):
me semblerait logique.
Commenter la réponse de le père.