Как мне l oop этот код после его окончания и как заставить работать часть кода Y / N? - PullRequest
0 голосов
/ 28 января 2020

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

from random import *

a = randint(0,20)
user_input = ""
user_input2 = ""
while True:
   if a != user_input:
       user_input = int(input("Pick a number or die: \n"))
   print(user_input, a)
   if user_input < a:
       print("Aim higher")
   elif user_input > a:
       print("Bit lower mate")
   else:
       break

while True:
   if a == user_input:
       user_input2 = raw_input("Up for another try:(Y/N)?")
   if user_input2.lower() == 'N' or 'n':
       break
       print("Lets see if you re so lucky again.")
   if user_input2.lower() == 'Y' or 'y':
       pass
       print("No shame in being a coward")
   else:
       print("That is wrong")
       break




1 Ответ

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

Поскольку ваш код сейчас, он проходит через первую часть (игру), а затем отдельно проходит через вторую часть (подсказку). Поэтому, когда вы говорите «да», чтобы играть снова, он просто продолжает спрашивать, хотите ли вы играть снова.

Вы захотите поместить первый l oop внутрь основного l oop и избавиться от оператор else во втором l oop. Надеемся, что комментарии имеют смысл

У вас должны быть какие-либо операторы печати до перерыва, иначе код никогда не достигнет этой точки. (например, после этого оператора if user_input2.lower() == 'N' or 'n':)

Я думаю, что вы также перепутали запросы Да и Нет. Воспроизвести снова Да означает, что они будут играть снова.

from random import *

a = randint(0,20)
user_input = ""
user_input2 = ""
while True:     #Loop for prompt and game
    user_input = ""     #Gets reset each time
    while True:     #Loop for just game
        if a != user_input:
            user_input = int(input("Pick a number or die: \n"))
        print(user_input, a)
        if user_input < a:
            print("Aim higher")
        elif user_input > a:
            print("Bit lower mate")
        else:
            break

    if a == user_input:
        user_input2 = raw_input("Up for another try:(Y/N)?")
    if user_input2.lower() == 'N' or 'n':
        print("No shame in being a coward")     #Quit game
        break
    if user_input2.lower() == 'Y' or 'y':
        print("Lets see if you re so lucky again.")     #Play again
        pass
    else:
        print("That is wrong")      #Bad or no input
        break
...