Цель игры: Создать смешные мемы на основе предоставленных ситуаций и получить больше голосов от других игроков.
Правила игры: В каждом раунде игрокам выдаются 7 мемов из своей колоды и одна общая ситуация из общей колоды. Игроки должны выбрать один мем из своей колоды, который лучше всего подходит к ситуации, или выбрать одну ситуацию из общей колоды, которая лучше всего подходит к общему мему. Затем все игроки показывают свои мемы и голосуют за самый смешной (кроме своего). Игрок, чей мем получил больше всего голосов, получает одно очко. Игра продолжается до тех пор, пока один из игроков не наберет определенное количество очков (например, 10) или пока не закончатся мемы или ситуации в колодах.
Архитектура приложения: Приложение будет разработано на Python с использованием библиотеки PyQt5 для создания графического интерфейса пользователя (GUI). Для хранения мемов и ситуаций будет использоваться локальная база данных SQLite. Для обеспечения сетевого взаимодействия между игроками будет использоваться библиотека socket для создания TCP-сервера и клиентов.
Модули приложения: приложение будет состоять из следующих модулей main.py: основной модуль, который запускает приложение и создает экземпляры классов GUI и Game. gui.py: модуль, который содержит класс GUI, отвечающий за создание и обновление окон, виджетов и элементов управления приложения. game.py: модуль, который содержит класс Game, отвечающий за логику игры, такую как инициализация колод, раздача мемов и ситуаций, подсчет голосов и очков. database.py: модуль, который содержит класс Database, отвечающий за подключение к базе данных SQLite и выполнение запросов для получения мемов и ситуаций. network.py: модуль, который содержит классы Server и Client, отвечающие за создание TCP-сервера и клиентов и обмен сообщениями между ними.