Задать вопрос
  • Бот для угадывания числа в диапазоне от 0 до 100?

    Мне кажется сделал что-то интересное... Попробуй.
    def get_n():
        try:
            number = int(input("Введите число от 0 до 100: "))
            if 0 <= number <= 100:
                return number
        except ValueError:
            pass
        print("Вы ввели неправильное число!")
        return get_n()
    
    
    def bot(n=0, r=0, d=50):
        print(f"Бот пробует число {n}, это его {r} попытка.")
        if n == number:
            print(f"Бот угадал число, число было {n}, и затратил на это {r} попыток.")
        else:
            if n < number:
                bot(n + d, r + 1, d)
            else:
                bot(n - d, r + 1, int(d / 2) if int(d / 2) > 0 else 1)
    
    
    number = get_n()
    bot()

    Единственное - иногда он повторяет значения.
    UPD: Решить эту проблему можно заменив:
    bot(n + d, r + 1, d)
    на:
    bot(n + d, r + 1, d - 1 if d - 1 > 0 else 1)
    Ответ написан
    2 комментария