On te l'a déjà dit il me semble, mais il faut vraiment que tu examines de plus près ce que tu fais dans cette fonction :
Fait le ne serait ce qu'à la main. Au départ z=1, et self.tour=[J1]. On rentre dans la boucle, nom_IA = 'IA1'. Dans tour_int on va avoir ['IA1']. Ensuite tu cherches à remplacer une virgule ? Qui plus est tu écrases la liste par la transformation de l'élément 0. Ensuite dans self.tour tu ajoutes le premier élément de tour_int. Pourquoi avoir fait de tour_int une liste si tu n'as besoin que d'un élément ? A ce ce stade là on a donc self.tour=[J1,'IA1']. Là ensuite tu réaffecte la 2eme valeur (z étant 1), et donc finalement self.tour=[J1, Joueur(nom_IA,"IA")].
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 def creation_joueur(self) : #on renseigfne la classe jouruer du joueur humain J1=Joueur('J1','humain') #on creer une liste de participant appeler tour self.tour =[J1] ## nb_joueur = int(input("Combien de joueurs?")) z=1 n_IA=self.nb_joueur-1 #nb de joueur - l'humain #boucle pour renseigner la liste tour et créer les objet de la classe joueur while (z<=n_IA) : nom_IA='IA'+str(z) tour_int=[] tour_int.append(nom_IA) tour_int=tour_int[0].replace("'","") self.tour.append(tour_int[0]) self.tour[z]=Joueur(nom_IA,"IA") z=z+1
Ok mais là t'as pas l'impression de faire tout plein de truc inutile pour arriver à cela ?
Que l'on préfère même écrire avec un for lorsque l'on connait le nombre d'itération à faire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 def creation_joueur(self) : self.tour =[Joueur('J1','humain')] z=1 n_IA=self.nb_joueur-1 #nb de joueur - l'humain #boucle pour renseigner la liste tour et créer les objet de la classe joueur while (z<=n_IA) : nom_IA='IA'+str(z) self.tour.append(Joueur(nom_IA,"IA")) z=z+1
On pourrait encore compacter, mais déjà il faut absolument que tu comprennes comment on en arrive là, et qu'est ce qui t'as conduit à écrire de telles absurdités pour ne plus jamais en réécrire de pareilles.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 def creation_joueur(self) : self.tour =[Joueur('J1','humain')] n_IA=self.nb_joueur-1 #nb de joueur - l'humain #boucle pour renseigner la liste tour et créer les objet de la classe joueur for z in range(1,n_IA+1): self.tour.append(Joueur('IA'+str(z),"IA"))
Partager