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