Здравствуйте, Кто сможет ? Этап 1
Необходимо написать программу, которая угадывает задуманное пользователем число от 1 до 100 за как можно меньшее количество шагов. Программа выдаёт предполагаемые числа, а пользователь отвечает, больше его число или меньше, чем число на экране.
Допустим, пользователь загадал число 32, тогда вывод программы может быть похож на этот:
Is it 50?
> less
Is it 25?
> greater
Is it 40?
> less
Is it 30?
> greater
Is it 35?
> less
Is it 32?
> yes
Got it in 6 steps!
Указания:
Предполагайте, что пользователь всегда играет честно и не обманывает программу.
Считайте число шагов в функции угадывания и возвращайте его.
Делите код на функции.
Этап 2
Нужно добавить вариант игры наоборот: компьютер загадывает случайное число от 1 до 100, а пользователь должен отгадать. Компьютер выводит сообщения:
greater, если число больше догадки
less, если число меньше догадки
yes, если пользователь угадал
Указания:
В начале игры пользователь попадает в меню, где может выбрать режим игры.
Игрок в любой момент может ввести команду exit для выхода. Для этого напишите отдельную функцию, которая принимает и возвращает ввод пользователя и вызывает функцию exit()
После игры игрок возвращается в главное меню
Этап 3
Нужно добавить вариант игры по очереди. Один раунд состоит из двух этапов:
Пользователь загадывает число, а компьютер угадывает.
Компьютер загадывает число, а пользователь отгадывает.
Указания
Выигрывает тот, кто угадал число за меньшее число ходов.
Пользователь может выбрать, сколько раундов длится игра - от 1 до 10. По умолчанию в игре 3 раунда (пользователь ничего не ввёл и нажал enter).
В игре выигрывает тот, кто победил в большем количестве раундов. Если число раундов было четным, то может быть ничья.
Форматируйте вывод так, чтобы было понятно, кто сейчас играет, выводите номер раунда и отделяйте раунды друг от друга отступами. Вы можете использовать строки вида "" и переносы строк, чтобы аккуратно разделить раунды.
Этап 4,
Переделайте программу таким образом, чтобы у вас появился ещё один и более алгоритмов отгадывания числа.
Протестируйте, какой из угадывания эффективнее. Сгенерируйте массив из 100 или более случайных чисел и по очереди прогоните его через каждый алгоритм угадывания. Определите среднее количество шагов, которое потребовалось каждому алгоритму на одно число. Лучший алгоритм тот, который угадал быстрее.
Указания:
Сохраняйте результаты работы алгоритмов в отдельные списки.
Для тестирования скопируйте код алгоритмов и логику теста в отдельный файл .py.
Вместо хода игры выводите только загаданное число и количество шагов, например:
Using: Algorithm
Got 32 in 6 steps
Got 50 in 1 step
Got 100 in 7 steps
...
Этап 5.
Добавьте выбор уровня сложности. Используйте результаты этапа 4, чтобы выбрать алгоритмы для разных уровней сложности.
На лёгком уровне сложности компьютер использует более простой, медленный алгоритм угадывания.
На сложном уровне сложности компьютер использует более быстрый, оптимальный алгоритм угадывания.
Указания:
Пользователь выбирает уровень сложности после выбора режима игры.