Данное тестовое задание рассчитано на начинающих разработчиков, которые хотели бы проверить свои навыки программирования на языке С++. Успешное и самостоятельное выполнение данного проекта предоставит вам бесценный опыт, а также гарантирует быстрое рассмотрение вашей кандидатуры на позицию «Junior С++ Developer» в нашей компании.
Постановка задачи
Необходимо разработать приложение с оконным (не консольное) интерфейсом, позволяющее играть в шашки по сети. Приложение должно гарантировать соблюдение всех правил традиционной игры.
На выбор исполнителя возможно два варианта сетевой архитектуры
- Каждый экземпляр приложения выступает в роли и клиента и сервера одновременно. Выделенный сервер отсутствует. Стороны соединяются путем явного указания IP:Port одной из сторон.
- Разработан выделенный сервер (для сервера можно использовать любую технологию/язык программирования), который позволяет игрокам находить друг друга и обеспечивает всю коммуникацию. В таком случае, Windows приложение будет выполнять только роль клиента.
Технологии
Для реализации пользовательского интерфейса рекомендуется использовать библиотеку QT.
Игровая доска и шашки могут быть как растровыми, так и векторными. Для корректного масштабирования желательно применять векторный формат.
Сетевое взаимодействие может быть реализовано по любому протоколу, передача данных может быть как в бинарном, так и в текстовом формате.
Ожидается удачное применение ООП.
Приветствуется использование последнего стандарта С++ и STL.
Знакомство и применение C++ Core Guidelines будет огромным плюсом.
Сроки выполнения
Четкие сроки не установлены т. к. мы не ожидаем работы полный рабочий день. Нам кажется, что 3-4 недели являются достаточно разумным сроком для выполнения данного задания с учетом частичной загрузки.