2016-10-08 4 views
0
import random 
computer=random.randint(1, 100) 
guess=int(input("guess the number")) 
if guess > 100: 
    print("your guess is too high") 
elif guess < 1: 
    print("your guess is too low") 
elif guess==computer: 
    print("well done!") 
else: 
    print("you\'re wrong, guess again") 

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

ответ

1

Wrap код игры функционировать и использовать while True вызвать его снова и снова

import random 

def play(): 
    computer=random.randint(1, 100) 
    guess=int(input("guess the number")) 
    if guess > 100: 
     print("your guess is too high") 
    elif guess < 1: 
     print("your guess is too low") 
    elif guess==computer: 
     print("well done!") 
    else: 
     print("you\'re wrong, guess again") 

while True: 
    answer = input("do you want to play?") 
    if answer == 'yes': 
     play() 
    elif answer == 'no': 
     break 
    else: 
     print("dont understand") 
0

Поместите все инструкции if-else в один цикл while, который продолжает цикл, пока пользователь не угадает номер правильно. Затем, после каждого проигрывающего результата, дайте пользователю еще один шанс угадать номер, чтобы цикл имел возможность переоценить предположение со следующей итерацией. В моей модификации ниже я решил оставить последнюю инструкцию if-else за пределами цикла, потому что, когда пользователь правильно угадает, код вырвется из цикла, чтобы проверить правильность угадывания. Конечно, в этом случае это должно быть правильно, поэтому пользователю говорят, что он или она прав, и программа завершается.

import random 
computer=random.randint(1, 100) 
guess=int(input("guess the number\n")) 
while(guess != computer): 
    if guess > 100: 
     print("your guess is too high\n") 
     guess=int(input("guess the number again\n")) 
    elif guess < 1: 
     print("your guess is too low\n") 
     guess=int(input("guess the number again\n")) 
if guess==computer: 
    print("well done!\n") 
0

Просто обзор того, как вы можете это сделать.

инициализировать переменную play_again = "yes"

Установите флажок в то время как на play_again:

while play_again == "yes": 

Приложите все если заявления и угадайте ввод в то время цикла

Читать пользовательский ввод в переменной внутри, но в конце цикла:

play_again = raw_input("\n\nWant to play again?: ") 
0

Вы можете использовать цикл while для нескольких итераций

import random 
computer=random.randint(1, 100) 
guess=int(input("guess the number")) 
play_again = 'y' 
while play_again == 'y': 
    if guess > 100: 
     print("your guess is too high") 
    elif guess < 1: 
     print("your guess is too low") 
    elif guess==computer: 
     print("well done!") 
    else: 
     print("you\'re wrong, guess again") 
    play_again = input("Want to play again(y/n): ") 
0

Вы должны поместить свой код во время цикла. Затем после игры спросите пользователя, хотят ли они продолжить функцию input(). Если они говорят «нет», вы можете разбить цикл или задать аргумент while в False.

Смежные вопросы