Игра «Угадай число» · Шаг 3 из 3
Партия
Ответ на попытку есть, набранное понимается — осталось само угадывание: спрашивать, пока не угадают, и считать попытки.
Что сделать
Проведите одну партию: спрашивайте число, пока его не угадают, и отвечайте на каждую попытку.
Что приходит
zagadano— загаданное числоotvet— ваш шаг 1:otvet(zagadano, chislo)даёт строку ответа на попыткуrazobrat— ваш шаг 2:razobrat(stroka)даёт число илиNone, если ввели не число
Что вернуть
Сколько было попыток с числами — «не число» попыткой не считается.
Допишите функцию igra в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
В игре
Это сама партия: оболочка только загадывает число, зовёт igra и потом спрашивает «Ещё партию?». Решите шаг — и попыток станет сколько угодно, а под конец игра скажет, за сколько вы угадали.
Без этого шага: пока у вас одна попытка на партию.
Загадано 37. Игрок по очереди вводит 50, 25 и 37. На каждую попытку функция печатает ответ otvet, последний — «Угадали!», и возвращает 3.
В проверке вместо игрока и первых двух шагов стоят простые подмены: input отдаёт заготовленные строки, а otvet отвечает только «Угадали!» или «Мимо».
Функция принимает загаданное число и две функции прошлых шагов: otvet(zagadano, chislo) и razobrat(stroka). Пишите их имена как обычные — это аргументы, как любые другие.
Партия идёт так: спросить строку через input(), разобрать её через razobrat. Не число — напечатать «Это не число» и спросить снова; такая попытка не считается. Число — напечатать отдельной строкой то, что вернул otvet, как есть. Партия кончается, когда число совпало с загаданным.
Возвращает, сколько было попыток с числами.
Образцовый тест целиком
hody = ["50", "25", "37"] input = lambda vopros="": hody.pop(0) otvet = lambda zagadano, chislo: "Угадали!" if chislo == zagadano else "Мимо" razobrat = int
igra(37, otvet, razobrat)
3
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.