Техническое задание: Сетевая игра Клоподавка

Необходимо разработать клиент-серверное приложение - настольную игру Клоподавка - на языке Java. Реализация должна быть выполнена в виде двух независимых проектов, использующих разные сетевые технологии для обмена данными между клиентом и сервером.

Основные требования

  • Язык программирования: Java.
  • Количество реализаций: 2 отдельные, полноценные игры.
  • Используемые технологии:
    • Первая реализация: на основе классических TCP/UDP сокетов.
    • Вторая реализация: с использованием фреймворка gRPC.
  • Логика игры: Должна полностью соответствовать классическим правилам настольной игры Клоподавка. Правила можно изучить по открытым источникам.

Функциональные требования к каждой реализации

  • Серверная часть, управляющая игровой логикой и состоянием игры.
  • Клиентская часть с пользовательским интерфейсом (консольным или графическим - на усмотрение исполнителя).
  • Возможность подключения нескольких игроков к одной игровой сессии.
  • Корректная обработка ходов, определение победителя по правилам игры.
  • Устойчивость к разрывам соединения (базовая обработка ошибок).

Ожидаемый результат

  • Два рабочих проекта с исходным кодом.
  • Четкое разделение кода по технологиям (сокеты и gRPC).
  • Код должен быть читаемым, с комментариями.
  • Возможность запуска сервера и клиентов для игры по сети.

Примечание: В предоставленном описании упоминался пример первой реализации. От исполнителя ожидается собственная, уникальная реализация проекта, а не модификация чужого кода.

Интеграция игрового API в существующий Laravel-проект

Требуется подключить внешний API провайдера игр к готовому сайту на Laravel. В проекте уже реализованы аутентификация, баланс пользователей и админ-панель. Необходимо обеспечить взаимодействие для запуска игр, обработки спинов и синхронизации баланса.