87 lines
4.2 KiB
Markdown
87 lines
4.2 KiB
Markdown
# Minesweeper Unity Test Task
|
|
|
|
Тестовое задание: клон классической игры «Сапёр», реализованный в Unity.
|
|
|
|
## Описание
|
|
|
|
Проект представляет собой простую реализацию Minesweeper в одной Unity-сцене. Внешний вид не является приоритетом; основной фокус сделан на игровой логике и выполнении функциональных требований.
|
|
|
|
## Технологии
|
|
|
|
- Unity
|
|
- C#
|
|
- VContainer
|
|
- DOTS ECS
|
|
|
|
## Функциональность
|
|
|
|
- Главное меню с кнопкой `Start`.
|
|
- Игровое поле с настраиваемым размером и количеством мин.
|
|
- Первый клик по клетке всегда безопасный.
|
|
- Управление мышью:
|
|
- левая кнопка мыши открывает клетку;
|
|
- правая кнопка мыши ставит или снимает флажок.
|
|
- Автоматическое раскрытие пустых областей:
|
|
- при открытии клетки без мин рядом раскрываются соседние пустые клетки;
|
|
- также раскрываются их соседи.
|
|
- Таймер игры:
|
|
- запускается после открытия первой клетки;
|
|
- останавливается при завершении игры.
|
|
- Пауза во время игры.
|
|
- Окно паузы с кнопками:
|
|
- `Restart`;
|
|
- `Continue`;
|
|
- `Main Menu`.
|
|
- Завершение игры при победе или поражении.
|
|
- Экран окончания игры с текстом результата и кнопками:
|
|
- `Restart`;
|
|
- `Main Menu`.
|
|
- Возможность начать игру заново в любой момент по нажатию клавиши.
|
|
- Перезапуск по клавише также работает после победы или поражения.
|
|
|
|
## Настройка игры
|
|
|
|
Размер поля и количество мин задаются через значения в конфигурации или инспекторе Unity.
|
|
|
|
Интерфейс для изменения этих параметров не обязателен.
|
|
|
|
## Требования к разработке
|
|
|
|
- Перед началом работы обязательно прочитать этот `README.md`.
|
|
- При реализации соблюдать требования из этого файла.
|
|
- Использовать `VContainer` для организации зависимостей.
|
|
- Использовать `DOTS ECS` для игровой логики, где это применимо.
|
|
- Вся игра должна быть реализована в одной сцене.
|
|
|
|
## Требования к проекту
|
|
|
|
- Проект должен открываться напрямую через Unity.
|
|
- Проект должен быть готов к загрузке на GitHub или передаче архивом.
|
|
|
|
## Как запустить
|
|
|
|
1. Открыть проект в Unity.
|
|
2. Дождаться импорта ассетов.
|
|
3. Открыть основную сцену проекта.
|
|
4. Нажать `Play` в Unity Editor.
|
|
5. В главном меню нажать кнопку `Start`.
|
|
|
|
## Управление
|
|
|
|
| Действие | Управление |
|
|
| --- | --- |
|
|
| Открыть клетку | Левая кнопка мыши |
|
|
| Поставить или снять флажок | Правая кнопка мыши |
|
|
| Начать заново | Клавиша перезапуска |
|
|
| Пауза | Кнопка паузы на игровом экране |
|
|
|
|
## Условия победы и поражения
|
|
|
|
Игрок проигрывает, если открывает клетку с миной.
|
|
|
|
Игрок выигрывает, если открыты все клетки, не содержащие мины.
|
|
|
|
## Примечания
|
|
|
|
Алгоритм расстановки мин упрощенный. Главное условие: первая открытая клетка никогда не содержит мину.
|