Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

172 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Шух — старинная карточная игра со сбросом и штрафами

статус Go правила колода игроков лицензия

«Шух» — народная карточная игра со сбросом: избавься от всех карт первым. А зазевался или сходил не по правилам, и это заметили за столом — получи «ШУХ» и лишнюю карту в руку. Этот репозиторий — её цифровая реализация: детерминированный движок правил на 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 дословный первоисточник (для сверки)

Лицензия — proprietary (все права защищены). Условия использования будут определены позже.

About

Цифровая реализация народной карточной игры «Шух» — детерминированный движок на Go

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages