В статье автор рассказывает о самостоятельном создании игры «Виселица» на языке программирования Python.
Ключевые слова: игра, Python, программирование.
В 2021 году во время изучения языка программирования Python в учебном центре «Дельфа» (г. Тюмень) в качестве финальной практической работы преподавателем было дано задание выполнить полноценный законченный проект. Моим проектом стало создание алгоритма, связанного с угадыванием слов по буквам, на примере всем известной игры «Виселица», в которой проигрыш означает рисунок, изображающий повешенного на виселице человечка.
Написание алгоритма было непростым, пришлось разрабатывать не только сам алгоритм, имеющий множество небольших задач-кусочков, которые необходимо было связать друг с другом, но и решать большое количество сопутствующих вопросов. Например, какого размера использовать экран, какие кнопки необходимо создать, как будет выглядеть рисунок, как все должно быть расположено на экране, какие цвета и размеры будут у всех элементов и т. д. Постоянная компиляция отдельных частей программы позволяла вывить и устранить возникающие ошибки. В итоге получился действующий алгоритм.
Для основного фона игры была взята картинка с изображением гор с бесплатного интернет ресурса ru.freepik.com (создателем рисунка является pikisuperstar), в котором изменена цветовая палитра, чтобы стиль оформления элементов программы и фона был одинаковым. Для указания авторских прав ссылка на источник изображения оставлена на картинке и указана в справочных сведениях о программе.
На главной странице приведены сведения правила игры. Конечно, все их знают, но это удобно, когда перед игрой можно прочитать и вспомнить условия (Рис. 1).
Рис. 1. Правила игры
При входе в игру пользователю предстоит сделать выбор: играть в одиночку или с друзьями (Рис. 2). При выборе одиночной игры пользователь должен определиться с одной из трёх предложенных тем: «Школа», «Еда» или «Животные». После этого начинается игра и нужно отгадать одно слово на выбранную тему.
Рис. 2. Внешний вид игры
Если выбрать игру с друзьями, то первым делом необходимо ввести имена всех участников (не более 5 человек) и количество слов, то есть столько слов, сколько будет отгадывать каждый игрок (Рис. 3Рис. 3).
Рис. 3. Игра для нескольких игроков
Сначала первый игрок отгадывает все слова, затем очередь переходит ко второму игроку и так далее по порядку. Слова и темы в игре с друзьями выбираются случайным образом. После того, как последний человек закончил отгадывать последнее слово, на экран выводятся результаты игры, в которых перечислено сколько слов отгадал каждый человек, кто отгадал самое длинное слово и распределение мест между игроками по количеству отгаданных букв. Выигрывает игрок, который отгадал наибольшее количество букв (Рис. 4).
Рис. 4. Результаты игры
Изначально на каждую тему в программу введено 15 слов, длина слов составляет от 3 до 14 букв. При необходимости количество тем и слов можно изменить, корректируя код программы. Но даже в таком варианте отгадать слова достаточно сложно.
В качестве решения дополнительной задачи алгоритм ввода букв во время игры не предусматривает использование штатной клавиатуры. В нижней части экрана специально создан блок виртуальной клавиатуры, на которой игрок с помощью манипулятора «мышь» выбирает угадываемую букву (Рис. 5).
Рис. 5. Виртуальная клавиатура
Во время игры, если пользователь угадывает букву, то программа открывает все буквы, встречающиеся в этом слове. А когда игрок ошибается, то программа начинает рисовать виселицу и человечка. После каждой ошибки появляется новый элемент рисунка. Если игрок допускает 9 ошибок, он проигрывает, а программа выводит сообщение: «Вот, блин, не получилось». (Рис.Рис. 5 6). Для удобства уже выбранные пользователем буквы отображаются в окне с левой стороны экрана. В случае выигрыша открывается всё слово, и программа пишет: «Поздравляю, ты отгадал слово!» (Рис. 7).
При нажатии кнопки «Об игре» выводятся сведения о создателе программы и о дизайнере, иллюстрация которого используется в качестве фона (Рис. 8).
Рис. 6. Игрок проиграл
Рис. 7. Игрок отгадал слово
Рис. 8. Сведения о создателе
Для составления алгоритма были использованы следующие функции языка Python:
- Списки для создания перечней тем, слов, игроков, отгаданных и ошибочных букв;
- Циклы для поиска букв в слове, заполнения списков, подсчёта результатов;
- Генератор случайных чисел для произвольного выбора слова из списка;
- Кнопки для справочной информации, управления игрой и создания виртуальной клавиатуры, чтобы вводить буквы с помощью мыши;
- Окна для ввода и вывода информации.
В итоге, после проделанной работы получилась полностью законченная и интересная игра «Виселица», написанная на языке Python в среде операционной системы Windows. Для меня было увлекательно решить данную задачу и написать действующий и стабильный код. Теперь я понимаю, что писать программы — это, конечно, не просто, но реально, главное правильно продумать весь алгоритм. Весь код составляет 1066 строк, и в целом занимает объём 42 килобайта. Защита проекта состоялась на занятиях в учебном заведении. Проект был принят преподавателем.