Создание простой игры «Камень, ножницы, бумага»
Разработчики часто хотят, чтобы пользователи вводили информацию, чтобы влиять на поведение программы.
Графический пользовательский интерфейс (GUI) — это система интерактивных визуальных объектов или виджетов, которые передают информацию пользователю и позволяют ему контролировать или влиять на какую-либо базовую программу или скрипт.
Простой пример — приложение-калькулятор, которое принимает пользовательский ввод и выполняет некоторую операцию. Вы можете просто написать свой сценарий, чтобы получать входные данные из командной строки и распечатывать результаты. Графические интерфейсы предоставляют пользователям гораздо более интуитивно понятный способ предоставления/получения информации и выбора.
Если вы разрабатываете программу для использования другими людьми, скорее всего, вам потребуется реализовать графический интерфейс. Для моих проектов я предпочитаю PySimpleGUI, и вот почему.
Пример PySimpleGUI: камень, ножницы, бумага
PySimpleGUI на сегодняшний день является самой простой для реализации библиотекой графического интерфейса Python. Он использует виджеты из различных графических интерфейсов и позволяет создавать приложения, которые работают так, как если бы вы создали их в Tkinter или Qt, но с частью кода.
Давайте рассмотрим простой пример. Одной из первых вещей, которые я написал, была простая игра «Камень, ножницы, бумага», которую я сделал в первый год обучения в школе. Требовалось много строк кода только для того, чтобы вывести результаты на терминал.
Давайте посмотрим, насколько легко реализовать полную версию графического интерфейса с помощью PySimpleGUI.
Настройка окна
Мы просто настроим простое окно с вводным текстом, 3 кнопками (по одной для каждого варианта) и полем вывода, чтобы показать, кто выиграл. В PySimpleGUI это невероятно просто и может быть сделано всего за 12 строк.
Структура программы с графическим интерфейсом отличается от обычного сценария тем, что пользователь может выбирать, какие события происходят в каком порядке.
Для этого у нас есть строки 9 и 10, запускающие бесконечный цикл while для чтения событий (нажатий кнопок) и значений (входных данных, даже если у нас их нет).
Строка 11 обрабатывает прерывание скрипта, когда мы выходим из окна.
Логика игры
Мы можем добавить новую строку для генерации выбора компьютерного оппонента, который будет выполняться в цикле while каждый раз, когда происходит событие.
Далее давайте обработаем логику исхода игры.
Мы напишем функцию для определения победителя на основе нашего выбора и выбора компьютера. Если True
, мы выиграем. Если False
, мы проигрываем. Если None
, то ничья.
Сохраните следующий код в файле с именем common.py
в том же месте, что и ваш основной скрипт.
Все вместе сейчас
Теперь объединяем наше окно графического интерфейса и игровую логику:
Запустив весь код вместе, мы видим результат вывода и можем продолжать делать разные выборы.
Теперь мы сделали очень простую, но функциональную игру «Камень, ножницы, бумага» с графическим интерфейсом, используя всего 45 строк Python.
Довольно круто!
Мы могли бы легко добавить в эту игру новые функции, такие как счетчик очков или распределение результатов. Или мы можем добавить несколько режимов игры с различными вариациями этой классической игры.
Моя цель заключалась не в том, чтобы сделать лучший симулятор RPS, а в том, чтобы продемонстрировать, как быстро вы можете смоделировать простую программу на основе графического интерфейса с помощью PySimpleGUI.
Мои мысли о PySimpleGUI
Я использовал PySimpleGUI для личных проектов, таких как быстрый ввод формы для тестирования QA и быстрое построение / сравнение настроек передаточного числа на моем горном велосипеде. Это особенно полезно для быстрого преобразования сценариев в реальные инструменты, которыми вы можете поделиться с коллегами или клиентами.
Хотя я не могу говорить о его эффективности, когда речь идет о приложениях производственного уровня, по словам разработчиков, он предназначен для решения 80% проблем с графическим интерфейсом пользователей.
Это отличный инструмент как для начинающих, так и для опытных разработчиков.
Если вы ищете простую библиотеку графического интерфейса, чтобы начать создавать интерактивные настольные приложения, PySimpleGUI — отличный выбор благодаря быстрой реализации и абсолютной простоте!
Загрузите мой исходный код здесь.
Дополнительные материалы на plainenglish.io