Измените роли мальчика и компьютера в игре «Компьютер угадывает число». Теперь компьютер загадывает число между 1

  • 9
Измените роли мальчика и компьютера в игре «Компьютер угадывает число». Теперь компьютер загадывает число между 1 и 100 (включительно), а мальчик задает вопросы: "Твое число равно, больше или меньше числа N?", где N - число, которое мальчик хочет проверить. Компьютер отвечает одним из трех чисел: 1 - равно, 2 - больше, 3 - меньше. Напишите программу, которая, используя эту последовательность вопросов и ответов, угадывает число. Дополнительно: убедитесь, что число можно гарантированно угадать за семь попыток.
Svetik
9
Конечно, предоставлю вам программу для решения данной задачи.


import random

def komp_ugadyvaet(chislo):
min_chislo = 1
max_chislo = 100
popitki = 1

while True:
otvet = random.randint(min_chislo, max_chislo) # Компьютер делает предположение
print("Компьютер: Думаю, что число", otvet)
if otvet == chislo: # Проверяем, угадал ли компьютер число
print("Компьютер: Угадал! Число равно", otvet)
break
elif otvet > chislo: # Если число компьютера больше задуманного
print("Компьютер: Моё число больше!")
max_chislo = otvet - 1
else: # Если число компьютера меньше задуманного
print("Компьютер: Моё число меньше!")
min_chislo = otvet + 1

popitki += 1

print("Количество попыток:", popitki)

# Главная часть программы
zagadannoe_chislo = int(input("Мальчик: Задайте число от 1 до 100: "))
komp_ugadyvaet(zagadannoe_chislo)


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

В начале программы устанавливаются минимальное и максимальное значения для диапазона чисел (в данном случае от 1 до 100) и начальное количество попыток (равное 1).

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

Если число компьютера больше загаданного, минимальное значение диапазона обновляется до otvet - 1 (чтобы не повторять предыдущее предположение компьютера). Если число компьютера меньше загаданного, максимальное значение диапазона обновляется до otvet + 1.

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

Вы можете ввести загаданное число и проверить, работает ли программа в соответствии с требованиями задачи.