Dans le programme ci-dessous le résultat de l'instruction if près de la fin est parfois incorrect, mais je ne peux pas y voir un motif. Je l'ai débogué autant que possible mais je ne trouve pas mon erreur. Je suis désolé pour la grande quantité de code mais je ne sais pas où l'erreur est dans ce code tout ce que je sais est que c'est quelque part dans le code ci-dessous.erreur occasionnelle de comparaison de variables dans python
L'aide serait grandement appréciée!
Je ne suis pas extrêmement expérimenté en python alors s'il vous plaît expliquer toutes les réponses en détail
for i in range(1,10):
import random
Cards = list(range(0,8))
print("shuffling...")
random.shuffle(Cards)
#print(Cards)
PlayerCards = []
ComputerCards = []
CardsLen = int(len(Cards))/2
for i in range(int(CardsLen)):
PlayerCards.append(Cards[0])
del Cards[0]
ComputerCards.append(Cards[0])
del Cards[0]
#print(PlayerCards)
#print(ComputerCards)
Ab5s = ['9', '12', '1', '10', '5', '6', '6', '8']
#print(Ab5s)
Ab5sS = sorted(Ab5s, key = int)
#print(Ab5sS)
AbNames = ['Magic', 'Cunning', 'Courage', 'Wisdom', 'Temper']
#print(AbNames)
Ab5Name = AbNames[4]
AbNamesDict = {5: Ab5s}
PlayerCardNum = PlayerCards[0]
ComputerCardNum = ComputerCards[0]
PlayerCardAb5 = Ab5s[PlayerCardNum]
ComputerCardAb5 = Ab5s[ComputerCardNum]
PlayerAbVal = Ab5s[PlayerCardNum]
ComputerAbVal = Ab5s[ComputerCardNum]
#print(PlayerAbVal)
#print(ComputerAbVal)
while True:
try:
PlayerAbUse = "Temper" #input("Which ability do you want to use ")
PlayerAbUse = PlayerAbUse.title()
PlayerAbNum = (AbNames.index(PlayerAbUse) + 1)
break
except ValueError:
print("error")
continue
AbList = AbNamesDict[PlayerAbNum]
PlayerAbVal = (AbList)[PlayerCardNum]
ComputerAbVal = (AbList)[ComputerCardNum]
#print(PlayerAbVal)
#print(ComputerAbVal)
print("Player has " + PlayerCardAb5 + " " + Ab5Name)
print("Computer has " + ComputerAbVal + " " + Ab5Name)
WonCards = []
#This is where I believe it is going wrong
if PlayerAbVal < ComputerAbVal:
Winner = 0
else:
if PlayerAbVal == ComputerAbVal:
Winner = 2
else:
Winner = 1
WonCards.append(PlayerCards.pop(0))
WonCards.append(ComputerCards.pop(0))
if Winner == 0:
print("Computer Win ")
while len(WonCards) > 0:
ComputerCards.append(WonCards.pop(0))
print("")
else:
if Winner == 1:
print("Player Win ")
while len(WonCards) > 0:
PlayerCards.append(WonCards.pop(0))
print("")
else:
print("Draw ")
Winner = random.randint(1,2)
Que doit exactement faire ce code? Qu'est-ce que je cherche? Il est préférable d'isoler le code qui, selon vous, pose problème :-) – Mangohero1
'pour i dans la plage (1,10): import random'. Quelle? – roganjosh
@ mangoHero1 Le code fait partie d'un jeu d'atouts et parfois il donne la mauvaise réponse pour le gagnant – user8430559