An open API service indexing awesome lists of open source software.

https://github.com/21trew/atomic_knight

Игра "Атомный конь". Надо пройти конем каждую клетку шахматной доски.
https://github.com/21trew/atomic_knight

angular

Last synced: 2 months ago
JSON representation

Игра "Атомный конь". Надо пройти конем каждую клетку шахматной доски.

Awesome Lists containing this project

README

          

# Атомный конь

Игра доступна по адресу: [https://atomic-knight.vercel.app/](https://atomic-knight.vercel.app/)
-

![](https://raw.githubusercontent.com/notafavor/test-cases/refs/heads/main/case_3.png)
## Задача
Разработать игру “Атомный конь”, где пользователь управляет шахматной фигурой "конь" и делает ходы по доске размером 10x10 клеток. Цель игры — заполнить всю доску числами, следуя правилам хода коня. Пользователь поочередно делает ходы, и каждая клетка, на которую ступает конь, заполняется числом, обозначающим порядковый номер хода. Если пользователь не может сделать ход, и при этом вся доска не заполнена, игра считается проигранной.

## При реализации необходимо учитывать следующие требования:
1. Игровая доска:
- Размер доски: 10x10 клеток.
- Каждая клетка должна отображать:
- Пустое поле (до того, как конь сделал ход).
- Номер хода, если конь был на этой клетке.
2. Логика игры:
- Ходы выполняются по правилам шахматной фигуры "конь" (буквой "Г": на две клетки в одном направлении и одну в перпендикулярном, или наоборот).
- Пользователь должен иметь возможность выбирать клетку для следующего хода (кнопки или клики мышкой).
- Пользователь делает первый ход, выбирая начальную клетку для коня.
- После каждого хода возможные варианты следующих ходов должны быть отображены (например, подсвечены).
- Если больше нет доступных ходов и доска не заполнена — игра проиграна.
- Если вся доска заполнена — игра выиграна.
3. Интерфейс:
- Игровой интерфейс должен быть понятным и минималистичным
- Добавить кнопку для сброса и перезапуска игры.
## Технические требования
- Использовать TypeScript
- Следовать Angular Style Guide
- Использовать Angular компоненты для разбиения приложения на логические части.
- Реализовать сервис для управления состоянием игры:
- Описать инструкцию по запуску (деплою) решения
- Решение должно быть размещено в публичном репозитории на Github
---
### Бонусные условия:
- Интерфейс корректно отображаться на экранах разных размеров:
- ПК
- Планшет
- Смартфон
- Использованы CSS препроцессоры (SCSS/SASS)
- Применены принципы SOLID
- Приложение покрыто unit-тестами (хотя бы для одного компонента/сервиса)