# 🎮 Игра Clobber
## Что такое Clobber?
**Clobber** — это стратегическая настольная игра для двух игроков с простыми правилами, но глубокой тактической составляющей. Название игры переводится как "избивать" или "колотить", что отражает её агрессивный характер.
## 🎯 Правила игры
### Компоненты
- **Доска**: прямоугольная сетка (обычно 5×6 или 8×8 клеток)
- **Фишки**: белые (⚪) и черные (⚫), расставленные в шахматном порядке
### Начальная позиция
- Фишки расставляются в шахматном порядке, заполняя всю доску
- Каждый игрок получает равное количество фишек
- Белые ходят первыми
### Механика хода
Игрок может:
1. **"Выбить" (clobber)** фишку противника
2. Переместиться на **соседнюю клетку** (по горизонтали или вертикали)
3. **Нельзя ходить на пустые клетки** или через другие фишки
### Цель игры
**Заблокировать противника** — побеждает тот игрок, после хода которого противник не может сделать допустимый ход.
## 🧩 Пример хода
Начальная позиция (2×2):
⚪ ⚫
⚫ ⚪
Ход белых: ⚪ выбивает → ⚫
Результат:
. ⚫
⚫ ⚪
### Структура проекта
```
clobber-game/
├── .github/workflows/ # CI/CD пайплайны
│ └── ci.yml # Конфигурация GitHub Actions
├── src/ # Исходный код
│ ├── Clobber.Core/ # Ядро игры - логика и модели
│ │ ├── Models/ # Доменные модели
│ │ │ ├── Piece.cs # Тип фигуры (None/White/Black)
│ │ │ ├── Cell.cs # Клетка с координатами
│ │ │ └── Board.cs # Игровая доска
│ │ └── Services/ # Игровые сервисы
│ ├── Clobber.Console/ # Консольное приложение
│ │ ├── Program.cs # Точка входа
│ │ ├── Menus/ # Система меню
│ │ └── Renderers/ # Отрисовка в консоли
│ └── Data/ # Слой данных и контракты
│ ├── Contracts/
│ │ ├── GameSnapshot.cs # Снимок состояния игры
│ │ └── RecordEntry.cs # Запись рекордов
│ └── Enums/
│ ├── GameStatus.cs
│ └── GameResult.cs
├── tests/ # Тесты
│ ├── Clobber.Core.Tests/ # Unit-тесты игровой логики
│ └── Data.Tests/ # Unit-тесты данных
├── docs/ # Документация
├── scripts/ # Вспомогательные скрипты
│ └── build.ps1 # Скрипт сборки
└── README.md # Этот файл
```