J'ai écrit du code pour un jeu de roche, de papier et de ciseaux. Je dois garder une trace des victoires, des pertes et des tirages de l'utilisateur. Je rencontre un problème avec les variables wins, pertes et draw étant remis à zéro. Il y a une deuxième partie de la fonction qui fait la même chose mais affecte la variable correspondante à 1.Python faisant un compteur
def user_choice():
print("Choice must be Rock, Paper, or Scissors.")
users_choice = input("Enter your choice here: ")
if users_choice == "Rock":
print("You chose Rock")
player_choice = "Rock"
computer_choice(player_choice)
elif users_choice == "Paper":
print("You chose Paper")
player_choice = "Paper"
computer_choice(player_choice)
elif users_choice == "Scissors":
print("You chose Scissors")
player_choice = "Scissors"
computer_choice(player_choice)
else:
print("Error: Choice must be one of the following: Rock, Paper, or Scissors")
user_choice()
def computer_choice(player_choice):
#This is the program's randomly generated number, from here on out the programm will be refered to as Computer.
computer_generated_number = random.randint(1, 3)
player_choice = player_choice
if computer_generated_number == 1:
computer_choice = "Rock"
game(player_choice , computer_choice)
elif computer_generated_number == 2:
computer_choice = "Paper"
game(player_choice , computer_choice)
elif computer_generated_number == 3:
computer_choice = "Scissors"
game(player_choice , computer_choice)
def game(player_choice , computer_choice):
wins = 0
losses = 0
draws = 0
if wins or losses or draws >= 1:
if player_choice == computer_choice:
print("It's a draw!")
user_input = input("Would you like to play again? Answer must be a yes or no. ")
draws = 1
if user_input == "Yes" or user_input == "yes":
user_choice()
elif user_input == "No" or user_input == "no":
print("You've won" , wins , "times")
print("You've lost" , losses , "times")
print("And you've come to a draw" , draws, "times")
print("Goodbye")
elif player_choice == "Rock" and computer_choice == "Scissors":
print("Rock smashes scissors!")
print("You won!")
user_input = input("Would you like to play again? Answer must be a yes or no. ")
wins = wins + 1
if user_input == "Yes" or user_input == "yes":
user_choice()
elif user_input == "No" or user_input == "no":
print("You've won" , wins , "times")
print("You've lost" , losses , "times")
print("And you've come to a draw" , draws, "times")
print("Goodbye")
elif player_choice == "Paper" and computer_choice == "Rock":
print("Paper covers rock!")
print("You won!")
user_input = input("Would you like to play again? Answer must be a yes or no. ")
wins = wins + 1
if user_input == "Yes" or user_input == "yes":
user_choice()
elif user_input == "No" or user_input == "no":
print("You've won" , wins , "times")
print("You've lost" , losses , "times")
print("And you've come to a draw" , draws, "times")
print("Goodbye")
elif player_choice == "Scissors" and computer_choice == "Paper":
print("Scissors cut paper!")
print("You won!")
user_input = input("Would you like to play again? Answer must be a yes or no. ")
wins = wins + 1
if user_input == "Yes" or user_input == "yes":
user_choice()
elif user_input == "No" or user_input == "no":
print("You've won" , wins , "times")
print("You've lost" , losses , "times")
print("And you've come to a draw" , draws, "times")
print("Goodbye")
elif player_choice == "Rock" and computer_choice == "Paper":
print("Paper covers rock!")
print("You lost")
user_input = input("Would you like to play again? Answer must be a yes or no. ")
losses = losses + 1
if user_input == "Yes" or user_input == "yes":
user_choice()
elif user_input == "No" or user_input == "no":
print("You've won" , wins , "times")
print("You've lost" , losses , "times")
print("And you've come to a draw" , draws, "times")
print("Goodbye")
elif player_choice == "Paper" and computer_choice == "Scissors":
print("Scissors cuts paper!")
print("You lost")
user_input = input("Would you like to play again? Answer must be a yes or no. ")
losses = losses + 1
if user_input == "Yes" or user_input == "yes":
user_choice()
elif user_input == "No" or user_input == "no":
print("You've won" , wins , "times")
print("You've lost" , losses , "times")
print("And you've come to a draw" , draws, "times")
print("Goodbye")
elif player_choice == "Scissors" and computer_choice == "Rock":
print("Rock smashes scissors!")
print("You lost")
user_input = input("Would you like to play again? Answer must be a yes or no. ")
losses = losses + 1
if user_input == "Yes" or user_input == "yes":
user_choice()
elif user_input == "No" or user_input == "no":
print("You've won" , wins , "times")
print("You've lost" , losses , "times")
print("And you've come to a draw" , draws, "times")
print("Goodbye")
if wins or losses or draws == 0:
if player_choice == computer_choice:
print("It's a draw!")
user_input = input("Would you like to play again? Answer must be a yes or no. ")
draws = 1
if user_input == "Yes" or user_input == "yes":
user_choice()
elif user_input == "No" or user_input == "no":
print("You've won" , wins , "times")
print("You've lost" , losses , "times")
print("And you've come to a draw" , draws, "times")
print("Goodbye")
elif player_choice == "Rock" and computer_choice == "Scissors":
print("Rock smashes scissors!")
print("You won!")
user_input = input("Would you like to play again? Answer must be a yes or no. ")
wins = 1
if user_input == "Yes" or user_input == "yes":
user_choice()
elif user_input == "No" or user_input == "no":
print("You've won" , wins , "times")
print("You've lost" , losses , "times")
print("And you've come to a draw" , draws, "times")
print("Goodbye")
elif player_choice == "Paper" and computer_choice == "Rock":
print("Paper covers rock!")
print("You won!")
user_input = input("Would you like to play again? Answer must be a yes or no. ")
wins = 1
if user_input == "Yes" or user_input == "yes":
user_choice()
elif user_input == "No" or user_input == "no":
print("You've won" , wins , "times")
print("You've lost" , losses , "times")
print("And you've come to a draw" , draws, "times")
print("Goodbye")
elif player_choice == "Scissors" and computer_choice == "Paper":
print("Scissors cut paper!")
print("You won!")
user_input = input("Would you like to play again? Answer must be a yes or no. ")
wins = 1
if user_input == "Yes" or user_input == "yes":
user_choice()
elif user_input == "No" or user_input == "no":
print("You've won" , wins , "times")
print("You've lost" , losses , "times")
print("And you've come to a draw" , draws, "times")
print("Goodbye")
elif player_choice == "Rock" and computer_choice == "Paper":
print("Paper covers rock!")
print("You lost")
user_input = input("Would you like to play again? Answer must be a yes or no. ")
losses = 1
if user_input == "Yes" or user_input == "yes":
user_choice()
elif user_input == "No" or user_input == "no":
print("You've won" , wins , "times")
print("You've lost" , losses , "times")
print("And you've come to a draw" , draws, "times")
print("Goodbye")
elif player_choice == "Paper" and computer_choice == "Scissors":
print("Scissors cuts paper!")
print("You lost")
user_input = input("Would you like to play again? Answer must be a yes or no. ")
losses = 1
if user_input == "Yes" or user_input == "yes":
user_choice()
elif user_input == "No" or user_input == "no":
print("You've won" , wins , "times")
print("You've lost" , losses , "times")
print("And you've come to a draw" , draws, "times")
print("Goodbye")
elif player_choice == "Scissors" and computer_choice == "Rock":
print("Rock smashes scissors!")
print("You lost")
user_input = input("Would you like to play again? Answer must be a yes or no. ")
losses = 1
if user_input == "Yes" or user_input == "yes":
user_choice()
elif user_input == "No" or user_input == "no":
print("You've won" , wins , "times")
print("You've lost" , losses , "times")
print("And you've come to a draw" , draws, "times")
print("Goodbye")
Qu'avez-vous fait pour le déboguer? – astidham2003
Essayez-vous d'exécuter cette fonction plusieurs fois? – BenT
J'ai essayé d'utiliser une instruction while, et j'ai essayé de voir si je pouvais contourner les variables après l'assignation initiale. –