«Шух» — народная карточная игра со сбросом: избавься от всех карт первым. А зазевался или сходил не по правилам, и это заметили за столом — получи «ШУХ» и лишнюю карту в руку. Этот репозиторий — её цифровая реализация: детерминированный движок правил на Go, а дальше — сетевой сервер и браузерный клиент.
Цель — первым остаться без карт: пустая рука и ни одной своей карты на столе. Игроки по очереди бьют карты по мастям, закрывают «коны», сбрасывают в отбой. Соль игры — в ловле чужих ошибок: нарушил правило и попался — штраф «ШУХ», и провинившемуся достаётся лишняя карта. Играют колодой на 36 или 52 карты, компанией от дуэли до восьми человек.
📖 Полный свод правил — docs/shukh-rules.md (формальная спецификация,
Редакция 1: правила R-§.n, штрафы Ш-n, инварианты I-n, варианты V-n).
Ранняя стадия — строим по спекам. Играбельного клиента пока нет.
- ✅ Правила — авторитетная спецификация (§1–§12, инварианты §11)
- ✅ Архитектура — слои, ключевые решения, дорожная карта
- 🚧 Движок (
engine/) — колода, раздача §4, бой §3, коны §5, инварианты - ⏳ Сервер (WebSocket) и веб-клиент (React) — впереди
Строгая слоёная архитектура: ядро ничего не знает про сеть и UI. Движок детерминирован и сидируем — партии воспроизводимы по seed и тестируются против инвариантов правил. Новые точки входа (сервер, Telegram-бот, нативка) — это тонкие адаптеры поверх одного и того же ядра.
| Пакет | Назначение |
|---|---|
engine/ |
чистая логика правил: колода 36/52, раздача, бой, коны, ШУХи, инварианты |
shuffle/ |
детерминированная тасовка (Fisher–Yates по seed) на границе ядра |
docs/ |
правила, архитектура, первоисточник |
Подробнее о решениях и обоснованиях — docs/architecture.md.
git clone https://github.com/oustrix/shukh
cd shukh
go test ./... # прогнать движок против инвариантов правилНужен Go 1.26+. Внешних зависимостей у движка нет (только testify для тестов).
Движок → авторитетный сервер (комнаты по коду/ссылке, без аккаунтов, реалтайм по WebSocket)
→ браузерный клиент (TypeScript/React) → опциональные варианты правил §12. Детали и открытые
вопросы — в docs/architecture.md.
| Документ | О чём |
|---|---|
docs/shukh-rules.md |
свод правил — источник истины |
docs/architecture.md |
решения реализации и дорожная карта |
docs/source-verbatim.md |
дословный первоисточник (для сверки) |