Как я могу сбросить время l oop в python, чтобы все условия были такими же, как при его запуске? - PullRequest
0 голосов
/ 23 февраля 2020

Я пытаюсь написать игру, которая:

  • др aws случайное число
  • просит пользователя ввести догадку
  • , если предположение слишком низко или высоко, он напечатает инструкцию соответственно
  • , если пользователю требуется более 3-х угадываний, которые он печатает («три удара у тебя нет»)
  • , если пользователь угадал его, он печатает (« вы догадались ")
  • , в обоих случаях он будет спрашивать пользователя, хотят ли они играть снова.
  • если да, программа должна сгенерировать новое число, и удары должны go вернуться к нулю
  • если нет, перерыв

Проблема, с которой я столкнулся, заключается в том, что я не могу понять, как сгенерировать новое случайное число и сбросить удары до нуля, когда пользователь угадал число или потерян.

import random



game_stop = False

strikes = 0

random_list = [1,2,3,4,5,6,7,8,9,]

random_number = random.choice(random_list)

def play_again():
   play_again = input("play again?: ")
   if play_again == "yes":
       strikes = 0

       game_stop = False
       return random.choice(random_list)


while not game_stop:

   strikes = strikes + 1

   guess = input("enter guess: ")

   if guess == "exit":
       break

   if int(guess) > random_number:
       print("too high")
   elif int(guess) < random_number:
       print("too low")
   else:
       print("you guessed it!")
       print("It took you " + str(strikes) + " tries!")


       play_again()


   if strikes > 2:
       print("three strikes your out!")
       play_again()   '''

1 Ответ

0 голосов
/ 24 февраля 2020

Измените свою функцию play_again (), используйте raw_input вместо input:

def play_again():
   play_again = raw_input("play again?: ")
   if play_again == "yes":
       strikes = 0

       game_stop = False
       return random.choice(random_list)
...