Почему функция не отображает победителя? - PullRequest
0 голосов
/ 15 ноября 2018

Игра требует этих функций, и она работает, но не показывает победителя.Я в своем уме, так как это должно быть завтра вечером.Это было назначено мне сегодня.Я перепробовал все, что мог, и я действительно понятия не имею, что делать вообще.

Игра работает на компьютере, случайным образом выбирая от 1 до 3.1 - камень, 2 - бумага, 3 - ножницы.Выбор компьютеров не должен отображаться в начале.Затем пользователь должен ввести либо каменную бумагу, либо ножницы.После этого будет отображаться выбор компьютера.А победитель выбирается по основным правилам рок-ножниц для бумаги.Если у обоих игроков одинаковый ответ, это считается ничьей.

И для моего класса он ДОЛЖЕН иметь функции main(), get_ComputerMove(), get_PlayerMove() и calculateWinner(). Заранее спасибо.

import random


def startAgain():
    randomNumber = getRandomNumber()
    computerChoice = get_ComputerMove(randomNumber)
    userChoice = get_PlayerMove()
    print('The computer chose', computerChoice )
    winner, message = calculateWinner(computerChoice,userChoice )
    if winner != 'no winner':
        print(winner,'won(',message, ')')        

def getRandomNumber():
    randomNumber = random.randint( 1, 3 )
    return randomNumber

def get_ComputerMove( randomNumber ):
    if randomNumber == 1:
        computerChoice = "rock"
    elif randomNumber == 2:
        computerChoice = "paper"
    else:
        computerChoice = "scissors"

    return computerChoice
def get_PlayerMove():
    userChoice = input("Please enter your choice")
    return userChoice

def calculateWinner( computerChoice, userChoice ):
    rockMessage = "The rock smashes the scissors"
    scissorsMessage = "Scissors cuts paper"
    paperMessage = "Paper covers the rock"
    winner = "no winner"
    message = ""
    if computerChoice == "rock" and userChoice == "scissors":
       winner = "Computer"
       message = rockMessage
    elif computerChoice == "scissors" and userChoice == "rock":
       winner = "you"
       message = rockMessage
    if computerChoice == "scissors" and userChoice == "paper":
       winner = "Computer"
       message = scissorsMessage
    elif computerChoice == "paper" and userChoice == "scissors":
       winner = "you"
       message = scissorsMessage
    if computerChoice == "paper" and userChoice == "rock":
       winner = "Computer"
       message = paperMessage
    elif computerChoice == "rock" and userChoice == "paper":
       winner = "you"
       message = paperMessage                 
    return winner, message 
def main():
    randomNumber = getRandomNumber()
    computerChoice = get_ComputerMove(randomNumber)
    userChoice = get_PlayerMove()
    print("The computer chose" , computerChoice )
    winner,message = calculateWinner( computerChoice,userChoice )
    if winner != "no winner":
        print(winner,"won(",message, ")")
    while winner == "no winner":
        print('You both chose the same thing')
        winner = startAgain()       
main() 

1 Ответ

0 голосов
/ 15 ноября 2018

Если вы хотите повторить игру до тех пор, пока не получит победителя, пока цикл выполнить трюк:

def main():
    winner = "no winner"

    while winner == "no winner":
        randomNumber = getRandomNumber()
        computerChoice = get_ComputerMove(randomNumber)
        userChoice = get_PlayerMove()

        print("The computer chose", computerChoice)
        winner, message = calculateWinner(computerChoice, userChoice)

        if winner != "no winner":
            print(winner, "won(", message, ")")
        else:
            print('You both chose the same thing')
...