voilà après une aide de la part d'un internaute je reviens vers vous pour une nouvelle question. Je vous fait part de mon code pour que vous puissiez l'examiner.
import random
error = True
while error:
try:
NbrCoul = int(input("Nombre de couleurs? "))
assert NbrCoul > 0
error = False
except:
print("Attention !!! Entré un nombre supérieur à zéro!")
error = True
while error:
try:
LongSuite = int(input("Longueur de la suite ? "))
assert LongSuite > 0
error = False
except:
print("Attention veuillez entré une longueur de suite correcte")
listeO = []
listeJ = []
def crealiste():
for i in range(1, LongSuite + 1):
listeO.append(random.randint(1, NbrCoul))
s = input("Rentré votre combinaison : ")
for i in range(len(s)):
listeJ.append(int(s[i]))
while listeJ[i] >= NbrCoul + 1:
s = input("Nombre trop grand. Veuillez retaper votre combinaison : ")
break
while LongSuite != len(listeJ):
s = input("Combinaison incorrecte. Veuillez retaper votre combinaison : ")
break
for i in range(len(s)):
listeJ.append(int(s[i]))
return listeJ # ##liste du joueur
return listeO # ## liste de l'ordinateur a trouver
### VERIFICATION
def evaluation(listeJ, listeO):
global y
global z
global m
m = 0
x = 0
z = 0
for x in range (x, LongSuite):
if listeJ[x] not in listeO:
m += 1
for x in range (x,LongSuite):
if listeJ[x] is listeO[x]:
z = z + 1
p = set(listeJ) & set(listeO) # ## mal et bien place en même temps !!!
y = len(p) - z
return z
return y
return m
crealiste()
evaluation(listeJ, listeO)
print(listeO)
print("il y a ",z," bien placé")
print("il y a ",y," Mal placé")
print("il y a",m,"mauvais")
Voilà, la question suivant est après plusieurs test pour voir si mon programme fonctionne. Mais il s'avère qu'a des moments il dérape et sa m'ennui, voici plusieurs exemple afin que vous puissiez comprend le problème :
1er exemple:
Nombre de couleurs? 4 Longueur de la suite ? 4 Rentré votre combinaison : 1243 [1, 3, 2, 2] il y a 0 bien placé il y a 3 mal placé il y a 1 mauvais
2eme exemple:
Nombre de couleurs? 4 Longueur de la suite ? 4 Rentré votre combinaison : 1324 [1, 2, 2, 4] il y a 1 bien placé il y a 2 mal placé il y a 1 mauvais
un dernier ptit coup de pouce serait le bienvenu.
je vous remercie d'avance de votre aide si charitable.
C'est pas terrible, ça c'est mieux (et plus lisible) :
for i in s:
listeJ.append(int(i))
Pour le reste je saurais trop te dire, mais je trouve que c'est le bordel. Je ne sais pas pourquoi tu fais des return à tout va non plus mais bon :/ Ni pourquoi tu fais des global non plus. Je laisse de meilleurs que moi t'indiquer tout ce qui ne va pas.
- Edité par InhumanRampage 13 janvier 2015 à 4:37:56
mastermind Python 2.0
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.