Найти в Дзене
Квантовый мопс

Создание игры Камень-Ножницы-Бумага на Python

Любой язык программирования проще и интереснее изучать, не просто решая задачи из учебника, а создавая какие-либо интересные штуки. Такой интересной штукой могут быть игры. Может показаться, что это слишком сложно, ведь компьютерные игры как правило обладают сложной графикой, анимациями и кучей персонажей с собственной симуляцией поведения, однако иногда мы забываем, что программирование даёт нам возможность моделировать почти любые процессы, в том числе и игры, в которые мы привыкли играть в реальном мире.

Такой игрой для нас будет игра Камень-Ножницы-Бумага, правила которой знает каждый, поэтому ограничимся лишь небольшой иллюстрацией и двинемся дальше)

Правила игры Камень-Ножницы-Бумага
Правила игры Камень-Ножницы-Бумага

Приступим к реализации этой бесконечной баталии на Python.

В начале проведём небольшую подготовку в виде импорта функции randint из модуля random. Он нам понадобится для определения выбора компьютера.

Рандом нам понадобится дальше
Рандом нам понадобится дальше

Как любой дом начинается с двери, так любая программа начинается с точки входа, которой является функция main().

Главная функция всея программы
Главная функция всея программы

С объявлением функции всё ясно, но что значит условие внизу? С его помощью мы запускаем функцию main, в которой и будет вся наша программа.

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

Функция main, в которой мы делаем почти всё
Функция main, в которой мы делаем почти всё

В начале вежливо здороваемся с игроком и создаём переменную для хранения состояния игры. Далее создадим список для хранения счёта и запустим первый цикл, который будет работать, пока значение переменной is_running будет равно "1".

Далее, крутимся во втором цикле, пока игрок не решит наконец ввести правильное значение и запускаем функцию game, в которой и реализована сама битва трём мировых сущностей.

-5

Функция game принимает 2 аргумента:

  • p_variant - вариант, выбранный игроком;
  • score - список, в котором хранится счёт игры;

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

Не забывая, что в Python все перебираемые значения индексируются начиная с 0, вычитаем из значения p_variant 1.

Далее коварный компьютер случайным образом выбирает, чем нас ударить и мы рассчитываем исход битвы.

Рассчитываем исход раунда
Рассчитываем исход раунда

В зависимости от выбранных вариантов решаем, кто победил, увеличиваем счёт игрока, либо машины и возвращаем обновлённое значение счёта.

Конец функции main
Конец функции main

Сразившись с коварной машиной, выводим обновлённый счёт игры на экран и спрашиваем, хочет ли игрок продолжить. если он вводит что-либо кроме 1, внешний цикл прерывается и игра заканчивается.

В результате, получаем нечто подобное:

Игровой процесс, нашего продукта.
Игровой процесс, нашего продукта.

Таким образом, можно относительно просто создать небольшую игру на Python. Конечно, её можно улучшить, например, добавив графику или больше объектов, чем Камень, Ножницы и Бумага, однако на подобном проекте можно улучшить навыки владения такими инструментами как функции, циклы и условия)