[Add] Base UI

This commit is contained in:
2026-06-06 20:30:50 +07:00
parent 6a2acd099e
commit 9ebedb12ec
12 changed files with 2369 additions and 46 deletions
+86
View File
@@ -0,0 +1,86 @@
# 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`.
## Управление
| Действие | Управление |
| --- | --- |
| Открыть клетку | Левая кнопка мыши |
| Поставить или снять флажок | Правая кнопка мыши |
| Начать заново | Клавиша перезапуска |
| Пауза | Кнопка паузы на игровом экране |
## Условия победы и поражения
Игрок проигрывает, если открывает клетку с миной.
Игрок выигрывает, если открыты все клетки, не содержащие мины.
## Примечания
Алгоритм расстановки мин упрощенный. Главное условие: первая открытая клетка никогда не содержит мину.