Files
snake-csharp/README.md

67 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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` — игровой цикл, счёт, коллизии со стенами и собой