4446bd778f80888fa6f1faaac571ae3ed2d276ff
Tail interpolation caused diagonal shortcuts at corners because the interpolated tail position would drift while the adjacent segment was already at its new grid position. By keeping only the head interpolated, L-shaped bends render correctly.
Snake (C#)
Классическая игра «Змейка» на .NET 8 с разделением логики и интерфейсов.
Структура решения
| Проект | Назначение |
|---|---|
Snake.Core |
Игровая логика: поле, змейка, еда, движение, коллизии |
Snake.CLI |
Консольный интерфейс |
Snake.Avalonia |
Графический интерфейс (Avalonia UI) |
Требования
Запуск
# Консольная версия
dotnet run --project Snake.CLI
# Avalonia UI (требуется графическая среда)
dotnet run --project Snake.Avalonia
Git Flow
Проект использует Git Flow:
| Ветка | Назначение |
|---|---|
main |
Стабильные релизы |
develop |
Интеграционная ветка для текущей разработки |
feature/* |
Новые функции (ветвление от develop) |
release/* |
Подготовка релиза (ветвление от develop) |
hotfix/* |
Срочные исправления в production (ветвление от main) |
Типичный workflow
# Начать новую функцию
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— игровой цикл, счёт, коллизии со стенами и собой
Description
Languages
C#
100%