Python

Задача 10. Игра «Компьютер угадывает число» язык кода Python помогите пожалуйста

Поменяйте мальчика и компьютер из прошлой задачи местами. Теперь мальчик загадывает число между 1 и 100 (включительно). Компьютер может спросить у мальчика: «Твое число равно, меньше или больше, чем число N?», где N — число, которое хочет проверить компьютер. Мальчик отвечает одним из трёх чисел: 1 — равно, 2 — больше, 3 — меньше.
Напишите программу, которая с помощью цепочки таких вопросов и ответов мальчика угадывает число.
Дополнительно: сделайте так, чтобы можно было гарантированно угадать число за семь попыток.
Farhod Fayzullayev
Farhod Fayzullayev
142
Начинаем с числа 64
до него 63 варианта, после него 35 вариантов ( "округляем" до 63 )
По получении ответа делим "варианты на 3 группы
31 число, 1 число, 31 число
итд (15/1/15, 7/1/7, 3/1/3, 1/1/1 )
Получается за 6 вопросов гарантированно "угадываем"
Денис Шевцов
Денис Шевцов
82 724
Лучший ответ
Михаил Титов ну ты компьютер))
Андрей Редин ну как же без ДЦП ?)))
https://pastebin.com/uZuHenkD

g=50;l=[25,12,6,3,2,1,1];s="Твое число равно, меньше или больше, чем число %s?"
while l:
print(s%g);i=input()
if i=='1':print('Твое число -',g);break
else:g+=l.pop(0)*{'2':1,'3':-1}[i]
print('Твое число -',g)

P.S. заменив и игрока тоже на компьютер, проверил - угадывает все правильно и не больше, чем за 7 шагов
Сергей Камдин
Сергей Камдин
7 982
просто скопируй!
import random
guessesTaken = 0
print("Желаешь разбогатеть, друг?")

myName = input("скажи имя!:")
number = random.randint(1,20)
print("Ну тогда приступим? "+myName+", я загадал число от одного до 20")
while guessesTaken < 6:
print("Как ты думаешь, какое?") #Перед функцией print() должно быть 4 пробела
guess = input()
guess = int(guess)
guessesTaken = guessesTaken+1
if guess < number:
print("Мое число больше твоего") #Перед функцией print() должно быть 8 пробелов
if guess > number:
print("Мое число меньше твоего")
if guess == number:
break
if guess == number:
guessesTaken = str(guessesTaken)
print("Превосходно "+myName+"! Ты угадал число с "+guessesTaken+" попытки. Твой выигрыш 10 очков.")
if guess != number:
number = str(number)
print("Жаль, но у тебя не осталось попыток. Я загадал число "+number+". Ты проиграл… Эй! Вы! Двое! Живо! Снимите ка с него шкуру!")
Андрей Редин говнокодер, ты проверил свой код, прежде чем его отправить ?
start = int(1)
finish = int (100)
number_attempts = 0
while number_attempts <= 7 :
number_attempts += 1
n = (start + finish) // 2
print("Число n равно: ", n)
prompt = int(input("Твоё число равно, меньше или больше, чем n "))
if prompt == 1 :
print("Урра! Угадал! с ", number_attempts, "попытки")
break
elif prompt == 2 :
finish = n
elif prompt == 3 :
start = n
start = 1
finish = 100
count = 0
while count <= 7:
number = (start + finish) // 2
print('Загаданное число равно, меньше или больше', number)
answer = int(input('1 - равно, 2 - больше, 3 - меньше '))
count += 1
if answer == 1:
print("Ура! Угадал! с", count, "попытки.")
break
elif answer == 2:
start = number
elif answer == 3:
finish = number
start = 1
finish = 100
count = 0
while count <= 7:
__number = (start + finish) // 2
__print('Загаданное число равно, меньше или больше', number)
__answer = int(input('1 - равно, 2 - больше, 3 - меньше '))
__count += 1
__if answer == 1:
____print("Ура! Угадал! с", count, "попытки.")
____break
__elif answer == 2:
____start = number
__elif answer == 3:
____finish = number
TK
Tolik Kim
146
Азамат Махаев Супер! коротко и четко!
start = 0
finish = 101
count = 0

while True:
N = (start + finish) // 2
print('Загаданное число равно, меньше пли больше', N)
answer = int(input('1 - равно, 2 - меньше, 3-больше '))
count += 1

if answer == 1:
print('Я угадал! Ура! c', count, 'попытки')
break

elif answer == 2:
finish = N

elif answer == 3:
start = N
Юрий Павлов Не работает должным образом, например если загадали число 60:
Загаданное число равно, меньше пли больше 50
1 - равно, 2 - меньше, 3-больше 3
Загаданное число равно, меньше пли больше 75
1 - равно, 2 - меньше, 3-больше 2
Загаданное число равно, меньше пли больше 62
1 - равно, 2 - меньше, 3-больше 3
Загаданное число равно, меньше пли больше 68
1 - равно, 2 - меньше, 3-больше 2
Загаданное число равно, меньше пли больше 65
1 - равно, 2 - меньше, 3-больше 2
Загаданное число равно, меньше пли больше 63
1 - равно, 2 - меньше, 3-больше 2
Загаданное число равно, меньше пли больше 62
1 - равно, 2 - меньше, 3-больше 2
Загаданное число равно, меньше пли больше 62
1 - равно, 2 - меньше, 3-больше
Alexandr Мазурок вы проверяете свой код, прежде чем отправить ?
куда код вводить
?