Как заставить функцию перезапускаться с новыми значениями после того, как пользователь ответит Да, когда его спросят, хочет ли он попробовать еще раз? - PullRequest
0 голосов
/ 28 февраля 2020

ОБНОВЛЕНО - Я пытаюсь обновить счет после каждого запуска игры, поэтому в основном, когда пользователь или компьютер выигрывает, счет должен обновляться, но он обновляется только один раз. Как получить userwin и compwin, чтобы оставаться в курсе после новой попытки?

** РЕШЕНО ** Мне нужно, чтобы компьютер выбрал сброс после окончания игры, и он должен быть в функции REPLAY. Код только перезапускает функцию без получения новых значений.

import random

def retry():
    while True:
        replay = input("Want to try again?").lower()
        if replay not in "yn":
            print("Please enter Yes or No.")
        elif replay == "n" or replay == 'no':
            print("Thanks for playing.\n Bye now!")
            break
        elif replay == "y" or replay == "yes":
            print("Let's try again!")
            return rps()

def rps():
    while True:
        compwin = 0
        userwin = 0
        computer = random.choice(picks)
        user = input("Choose: Rock, Paper, Scissors: \n").lower()
        if user not in ['rock','paper','scissors']:
            print("Please choose a valid option.")
        if user == computer:
            print("It's a draw.")
            return retry()
        if ((user == 'rock' and computer == 'paper')or
            (user == 'paper' and computer == 'scissors')or
            (user == 'scissors' and computer == 'rock')):
                print("Computer won")
                compwin += 1
                print("Computer won: ",compwin,"games")
                return retry()
        if ((user == 'scissors' and computer == 'paper')or
              (user == 'paper' and computer == 'rock')or
              (user == 'rock' and computer == 'scissors')):
                print('You won!')
                userwin += 1
                print("User won: ",userwin,"games")
                return retry()


#Pay attention to wording and parantheses and where you add the line of codes: choice/choices()
picks = (['rock','paper','scissors'])
rps()

...