2015-04-11 4 views
0

Я пытаюсь написать игру, в которой Player One выбирает номер, а у игрока Two есть 5 Guesses, чтобы угадать. Если ему удастся это сделать, он победит, если нет, он проиграет, а победит один игрок.Two Player Number Guessing Game - Python

У меня есть код, но если, например, игрок выбирает номер «3», а второй игрок входит в число «3» на любом из своих проходов, он по-прежнему говорит, что побеждает один игрок.

>>> 
Player One enter you chosen number: 3 
Player Two have a guess: 3 
Player One wins. 
>>> 

Это происходит также:

>>> 
Player One enter you chosen number: 5 
Player Two wins. 

Кроме того, игрок два может иметь много поворотов, как он любит, но это должно быть только 5. Если он передает эту сумму, игрок автоматически выигрывает один. Вот мой код: (я не знаю, здесь я ошибся.)

def Game(): 
    Guess = 0 
    NumberOfGuesses = 0 
    NumberToGuess = int(input("Player One enter you chosen number: ")) 
    while NumberToGuess < 1 or NumberToGuess > 10: 
     NumberToGuess = int(input("Not a valid choice, please enter another number: ")) 
    while Guess != NumberToGuess and NumberOfGuesses < 5: 
     Guess = int(input("Player Two have a guess: ")) 
     NumberOfGuesses = NumberOfGuesses + 1 
    if Guess == NumberToGuess: 
     print("Player One wins.") 
    else: 
     print("Player Two wins.") 


Game() 

ответ

1

Ваше заявление не соответствует действительности. Вместо

if Guess == NumberToGuess: 
    print("Player One wins.") 
else: 
    print("Player Two wins.") 

должно быть

if Guess == NumberToGuess: 
    print("Player Two wins.") 
else: 
    print("Player One wins.") 

, потому что игрок 2 выигрывает, если он угадывает число, которое игрок 1 выбрал (NumberToGuess). Я не могу восстановить вашу вторую проблему, когда игрок 2 сразу побеждает игрока 1. 5. Он отлично работает для меня.

+0

Ха-ха Как я пропустил это ... Я думаю, что когда-нибудь мне понадобится тормоз: P –

0

Логика неправильная. Если вход не равен NumberToGuess, то вы не можете печатать Player Two wins.

Затем вы должны выполнить цикл. Затем вне цикла проверьте, был ли игрок успешным.

while Guess != NumberToGuess and NumberOfGuesses < 5: 
    Guess = int(input("Player Two have a guess: ")) 
    NumberOfGuesses = NumberOfGuesses + 1 
    if Guess == NumberToGuess: 
     print("Player Two wins.") 

if Guess != NumberToGuess: 
     print("Player One wins.") 
+0

Да, я согласен. Все еще печатайте, что игрок 2 выигрывает, даже если он не догадывается ... –

+0

@Filip How ?? Я так не думаю – user7

+0

Ничего, я это проработал. :) –