Техническое задание: Сетевая игра Клоподавка
Необходимо разработать клиент-серверное приложение - настольную игру Клоподавка - на языке Java. Реализация должна быть выполнена в виде двух независимых проектов, использующих разные сетевые технологии для обмена данными между клиентом и сервером.
Основные требования
- Язык программирования: Java.
- Количество реализаций: 2 отдельные, полноценные игры.
- Используемые технологии:
- Первая реализация: на основе классических TCP/UDP сокетов.
- Вторая реализация: с использованием фреймворка gRPC.
- Логика игры: Должна полностью соответствовать классическим правилам настольной игры Клоподавка. Правила можно изучить по открытым источникам.
Функциональные требования к каждой реализации
- Серверная часть, управляющая игровой логикой и состоянием игры.
- Клиентская часть с пользовательским интерфейсом (консольным или графическим - на усмотрение исполнителя).
- Возможность подключения нескольких игроков к одной игровой сессии.
- Корректная обработка ходов, определение победителя по правилам игры.
- Устойчивость к разрывам соединения (базовая обработка ошибок).
Ожидаемый результат
- Два рабочих проекта с исходным кодом.
- Четкое разделение кода по технологиям (сокеты и gRPC).
- Код должен быть читаемым, с комментариями.
- Возможность запуска сервера и клиентов для игры по сети.
Примечание: В предоставленном описании упоминался пример первой реализации. От исполнителя ожидается собственная, уникальная реализация проекта, а не модификация чужого кода.