67 lines
2.3 KiB
Markdown
67 lines
2.3 KiB
Markdown
# Snake (C#)
|
||
|
||
Классическая игра «Змейка» на .NET 8 с разделением логики и интерфейсов.
|
||
|
||
## Структура решения
|
||
|
||
| Проект | Назначение |
|
||
|--------|------------|
|
||
| `Snake.Core` | Игровая логика: поле, змейка, еда, движение, коллизии |
|
||
| `Snake.CLI` | Консольный интерфейс |
|
||
| `Snake.Avalonia` | Графический интерфейс (Avalonia UI) |
|
||
|
||
## Требования
|
||
|
||
- [.NET 8 SDK](https://dotnet.microsoft.com/download/dotnet/8.0)
|
||
|
||
## Запуск
|
||
|
||
```bash
|
||
# Консольная версия
|
||
dotnet run --project Snake.CLI
|
||
|
||
# Avalonia UI (требуется графическая среда)
|
||
dotnet run --project Snake.Avalonia
|
||
```
|
||
|
||
## Git Flow
|
||
|
||
Проект использует [Git Flow](https://nvie.com/posts/a-successful-git-branching-model/):
|
||
|
||
| Ветка | Назначение |
|
||
|-------|------------|
|
||
| `main` | Стабильные релизы |
|
||
| `develop` | Интеграционная ветка для текущей разработки |
|
||
| `feature/*` | Новые функции (ветвление от `develop`) |
|
||
| `release/*` | Подготовка релиза (ветвление от `develop`) |
|
||
| `hotfix/*` | Срочные исправления в production (ветвление от `main`) |
|
||
|
||
### Типичный workflow
|
||
|
||
```bash
|
||
# Начать новую функцию
|
||
git checkout develop
|
||
git checkout -b feature/my-feature
|
||
|
||
# Завершить функцию
|
||
git checkout develop
|
||
git merge --no-ff feature/my-feature
|
||
git branch -d feature/my-feature
|
||
|
||
# Релиз
|
||
git checkout -b release/1.0.0 develop
|
||
# ... финальные правки, тег версии ...
|
||
git checkout main
|
||
git merge --no-ff release/1.0.0
|
||
git tag -a v1.0.0
|
||
git checkout develop
|
||
git merge --no-ff release/1.0.0
|
||
```
|
||
|
||
## Игровая логика (Snake.Core)
|
||
|
||
- `Board` — размеры поля и проверка границ
|
||
- `Snake` — сегменты тела, направление, движение
|
||
- `Food` — случайное размещение еды на свободных клетках
|
||
- `SnakeGame` — игровой цикл, счёт, коллизии со стенами и собой
|