制作计数器的Python
问题描述:
我一直在为岩石,纸张,剪刀游戏编写代码。我必须跟踪用户的胜利,损失和吸引力。我遇到了一个问题,变量获胜,失败和抽签被重置为零。该函数的第二部分执行相同的操作,但将相应的变量赋值为1.制作计数器的Python
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")
答
我会建议一个简化的“体系结构”。用于获取用户和计算机选择的函数应该返回可以进行比较的值。
import random
CHOICES = ('rock', 'paper', 'scissors')
def get_user_choice():
choice = input('Rock, paper, or scissors? ')
choice = choice.lower().strip()
if choice not in CHOICES:
print('Please select one of rock, paper, or scissors')
choice = get_user_choice()
return choice
def get_computer_choice():
return random.choice(CHOICES)
def play_round():
user_choice = get_user_choice()
computer_choice = get_computer_choice()
print('You selected', user_choice)
print('Computer selected', computer_choice)
# Compare choices here
# Return value indicating win, loss, or draw
def play():
wins = 0
losses = 0
draws = 0
result = play_round()
# Update wins, losses, or draws according to the result
# Prompt user to play again or quit
return wins, losses, draws
if __name__ == '__main__':
wins, losses, draws = play()
# Report wins, losses, and draws
你做了什么来调试呢? – astidham2003
您是否试图多次运行此功能? – BenT
我尝试过使用while语句,并且试图在初始分配后能够环绕变量 –