Je suis actuellement en train de coder un petit jeu de roche, de papier, de ciseaux en Python, mais j'ai l'impression d'avoir trébuché sur un problème. Le jeu fonctionne, même si le code est un peu approximatif, mais j'ai essayé de faire en sorte que le programme informe le joueur qu'il a fait une erreur, et quand je le mets à l'essai, il informe le joueur qu'il a fait une erreur. ils n'ont pas. Voici le bloc de code qui est mon problème, ce n'est pas tout le jeu.Problème avec un jeu de roche, papier, ciseaux en Python
def game(self):
print "This is rock, paper, scissors!"
rps = ('rock', 'paper', 'scissors')
comp1 = raw_input("Rock, paper or scissors?\n> ")
comp2 = random.choice(rps)
if comp1 == 'rock' and comp2 == 'scissors' or comp1 == 'scissors' and comp2 == 'paper' or comp1 == 'paper' and comp2 == 'rock':
print "You won! The computer chose %s" % comp2
return "game"
elif comp1 == 'rock' and comp2 == 'rock':
print "In a stalemate, there are no winners, only losers :)\nThe computer also chose %s" % comp2
return "game"
elif comp1 == 'scissors' and comp2 == 'scissors':
print "In a stalemate, there are no winners, only losers :)\nThe computer also chose %s" % comp2
return "game"
elif comp1 == 'paper' and comp2 == 'paper':
print "In a stalemate, there are no winners, only losers :)\nThe computer also chose %s" % comp2
return "game"
elif comp1 != 'rock' or 'scissors' or 'paper':
print "Try choosing between rock, paper and scissors next time. It might help.
return "game"
else:
print "The computer %s. You have failed. Problem?" % comp2
return "game"
Sur mon téléphone, mais essayez de lancer comp1 en minuscules. Vous pouvez également simplifier la logique par comp1 == comp2 pour l'impasse – billinkc
Vous n'avez pas copié le code réel puisque ce que vous avez copié contient des littéraux de chaîne non valides. –
Pourquoi renvoyez-vous toujours la chaîne "jeu", cela semble étrange ... Probablement n'a rien à voir avec votre problème. –