feat: initial project structure with Snake.Core, CLI and Avalonia skeleton

This commit is contained in:
Heller
2026-06-17 19:02:07 +00:00
commit 42fcaf8631
25 changed files with 661 additions and 0 deletions

66
README.md Normal file
View File

@@ -0,0 +1,66 @@
# 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` — игровой цикл, счёт, коллизии со стенами и собой