Любой язык программирования проще и интереснее изучать, не просто решая задачи из учебника, а создавая какие-либо интересные штуки. Такой интересной штукой могут быть игры. Может показаться, что это слишком сложно, ведь компьютерные игры как правило обладают сложной графикой, анимациями и кучей персонажей с собственной симуляцией поведения, однако иногда мы забываем, что программирование даёт нам возможность моделировать почти любые процессы, в том числе и игры, в которые мы привыкли играть в реальном мире.
Такой игрой для нас будет игра Камень-Ножницы-Бумага, правила которой знает каждый, поэтому ограничимся лишь небольшой иллюстрацией и двинемся дальше)
Приступим к реализации этой бесконечной баталии на Python.
В начале проведём небольшую подготовку в виде импорта функции randint из модуля random. Он нам понадобится для определения выбора компьютера.
Как любой дом начинается с двери, так любая программа начинается с точки входа, которой является функция main().
С объявлением функции всё ясно, но что значит условие внизу? С его помощью мы запускаем функцию main, в которой и будет вся наша программа.
В основе нашей реализации будут лежать 2 вложенных друг в друга цикла. Внешний цикл будет удерживать нашу игру от закрытия, пока мы сами этого не захотим, а внутренний будет контролировать ввод корректных значений выбора средства уничтожения вражеских камней, ножниц и бумаг.
В начале вежливо здороваемся с игроком и создаём переменную для хранения состояния игры. Далее создадим список для хранения счёта и запустим первый цикл, который будет работать, пока значение переменной is_running будет равно "1".
Далее, крутимся во втором цикле, пока игрок не решит наконец ввести правильное значение и запускаем функцию game, в которой и реализована сама битва трём мировых сущностей.
Функция game принимает 2 аргумента:
- p_variant - вариант, выбранный игроком;
- score - список, в котором хранится счёт игры;
Первым делом, объявим список, в котором сохраним строковые значения, которые в будущем подставим в консольный вывод в зависимости от обстановки на поле боя.
Не забывая, что в Python все перебираемые значения индексируются начиная с 0, вычитаем из значения p_variant 1.
Далее коварный компьютер случайным образом выбирает, чем нас ударить и мы рассчитываем исход битвы.
В зависимости от выбранных вариантов решаем, кто победил, увеличиваем счёт игрока, либо машины и возвращаем обновлённое значение счёта.
Сразившись с коварной машиной, выводим обновлённый счёт игры на экран и спрашиваем, хочет ли игрок продолжить. если он вводит что-либо кроме 1, внешний цикл прерывается и игра заканчивается.
В результате, получаем нечто подобное:
Таким образом, можно относительно просто создать небольшую игру на Python. Конечно, её можно улучшить, например, добавив графику или больше объектов, чем Камень, Ножницы и Бумага, однако на подобном проекте можно улучшить навыки владения такими инструментами как функции, циклы и условия)