@qw0cry

Как начать исполнение функции по новой через выбор пользователя?

Я в этом деле совсем недавно, и начал писать код-игру,в которой пользователь должен отгадать число,загаданное компьютером через random. пользователь вводит число,после чего ему выдается подсказка- больше или меньше загаданное.

Создал несколько уровней сложности,а весь процесс игры кинул в def.

И вот тут встаёт вопрос:как в конце этой функции путем выбора пользователем варианта вернуться к её началу?

*chislo задаётся ниже через random.randint,a=кол-во попыток
def igra(chislo, a):
    while a > 0:
        chislo2 = input("Введите предполагаемое число: ")
        if int(chislo2) != chislo and int(chislo2) < chislo:
            a -= 1
            print("Загаданное число больше,количество оставшихся попыток : ", a)
        elif int(chislo2) != chislo and int(chislo2) > chislo:
            a -= 1
            print("Загаданное число меньше,количество оставшихся попыток : ", a)
        else:
            kuda = input('Вы угадали число! Вернуться в меню(1) или сыграть на этом уровне сложности ещё раз?(2)')
            if int(kuda) == 1:
                menu()
            elif int(kuda) == 2:
                #каким образом начать выполнение функции по новой,чтобы при этом кол-во попыток(а) вернулось к исходному?


  • Вопрос задан
  • 134 просмотра
Решения вопроса 2
RimMirK
@RimMirK
Вроде человек. Вроде учусь. Вроде пайтону
def game(num, attempts_count):
    # code
    if int(direction) == 2:
        new_num = random.randint(0, 10)
        game(new_num, attempts_count)

Переменные, функции, класы и т д принято по английски.
не igra, a game; не chislo, а number (num); не a, а attempts_count, счетчик попыток ; не kuda, a, например, direction, направление..
Ответ написан
Core2Quad777
@Core2Quad777
нужна рекурсия, когда функция вызывает сама себя:
elif int(kuda) == 2:
                igra(chislo, a)

вот весь код функции:
def igra(chislo, a):
    for i in range(a):
        chislo2 = input("Введите предполагаемое число: ")
        if int(chislo2) != chislo and int(chislo2) < chislo:
            a -= 1
            print("Загаданное число больше,количество оставшихся попыток : ", a)
        elif int(chislo2) != chislo and int(chislo2) > chislo:
            a -= 1
            print("Загаданное число меньше,количество оставшихся попыток : ", a)
        else:
            kuda = input('Вы угадали число! Вернуться в меню(1) или сыграть на этом уровне сложности ещё раз?(2)')
            if int(kuda) == 1:
                menu()
            elif int(kuda) == 2:
                igra(chislo, a)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы