- Необходимо установить nodejs
- также необходимо установить gulp, для этого в командной строке выполните npm i gulp -g
- Для загрузки всех зависимостей необходимо в папке с приложением выполнить npm install
- после этого можно запустить gulp из командной строки в папке с приложением
Необходимо спроектировать и реализовать одностраничное приложение для игры в шашки для двоих игроков по принципу Hotseat (оба игрока за одним компьютером).
- игровое поле – стандартная доска 8×8 клеток
- текущий счёт – счёт побед для игр в текущей сессии, формат: "0 : 0"
- имена игроков – можно изменить только перед началом игры
- таймер игрока – время, которое игрок потратил на все ходы в текущей игре, минуты и секунды.
- шашки противника – поле, на котором отображает количество "убитых" шашек противника.
- "Начать заново!" – кнопка, которая "сбрасывает" текущую игру и обнуляет счёт побед.
Игра начинается с приветствия на игровом поле с текстом: "Кликните для начала игры". В этой стадии игроки могут изменить свои имена, поля с шашками противника пусты, а таймеры игроков установлены в 00:00.
Во время начала игры первый ход делает игрок 1, ему принадлежат белые шашки. Право хода переходит к следующему игроку, как только будет совершено соответствующее действие на игровом поле (перемещение шашки, например), таймер этого игрока должен возобновить отсчёт. Во время игры имена игроков недоступны для редактирования.
Текущая игра заканчивается, когда у игрока не останется возможности сделать ход (все шашки потеряны или заперты). Победитель объявляется сообщением на игровом поле, и по клику на нём начинается следующая игра. Во время отображения этого сообщения – поля с шашками противников и таймеры игроков должны показывать данные на момент окончания игры и сбрасываются только при переходе к следующей игре.
Во время игры должно быть понятно, чей сейчас ход и кто одерживает победу.
Имена игроков и текущий счёт побед должен сохраняться в localStorage (или cookie) и загружаться при обновлении страницы.
При проектировании системы необходимо учесть возможность добавления других игр на шахматной доске со схожей механикой в будущем (предполагается, что в такой ситуации перед началом партии, можно будет сделать выбор конкретной игры). UI при этом не будет сильно меняться – очередность ходов, текущий счёт, таймер хода и игровое поле, очевидно, подойдут как для шахмат, так и для "уголков".
Кроме того, должна учитываться возможность миграции на клиент-серверную архитектуру в перспективе, чтобы игроки смогли играть удаленно.
Для реализации UI части допустимо использовать Twitter Bootstrap, jQuery и любые другие решения.
Остальные спорные моменты разрешается решить на своё усмотрение.