feat: initial project structure with Snake.Core, CLI and Avalonia skeleton
This commit is contained in:
66
README.md
Normal file
66
README.md
Normal 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` — игровой цикл, счёт, коллизии со стенами и собой
|
||||
Reference in New Issue
Block a user