Постапокалиптическая карточная дуэль двух лагерей. Ядро — одна шкала Стабильности: она одновременно и здоровье, и «цена» розыгрыша карт.
- Стартовая Стабильность — 40, предел — 60. Значение подобрано под партию в ~5–6 раундов. Карту нельзя разыграть, если после оплаты останется меньше 1.
- Колода дуэли — 30 карт из общего набора (500, см. «Коллекция»). Обе стороны играют случайными колодами, состав каждой меняется от матча к матчу. Стартовая рука — 5, предел руки — 6; в начале каждого следующего раунда добирается 1 карта.
- На поле — 6 слотов. Карты различаются таймингом эффекта:
- При розыгрыше — эффект срабатывает один раз;
- В конце хода — эффект повторяется каждый раунд, пока карта на поле;
- В начале игры — срабатывает один раз из колоды до первого хода.
- Отрицательная цена: карты с
−-стоимостью добавляют Стабильность при розыгрыше. - Игроки выбирают карты закрыто, цена списывается сразу; до закрытия выбора карту можно вернуть с возвратом цены.
- Замена: раз за раунд можно бесплатно сбросить одну карту и добрать другую.
- Опционально — лимит в 2 карты за раунд (по умолчанию лимита нет, кроме доступной Стабильности, руки и свободных слотов).
- Победа: Стабильность противника достигает 0. При одновременном обнулении решает «перебор» урона — кто оказался дальше от нуля, тот выжил; точное равенство — ничья.
Набор карт — 500: 31 курируемая + 469 сгенерированных детерминированно (src/game/cards.ts).
В дуэли обе стороны играют случайными колодами по 30 карт из всего набора — конкретный состав заново собирается каждую партию. Раздел «Коллекция и колоды» показывает все 500 карт.
npm install
npm run devПроверки, сборка и симуляция:
npm run check
npm test
npm run build
npm run stability:simulate -- 4000 1 40 0Аргументы stability:simulate: <матчей> <стартовый_seed> <стартовая_стабильность> <лимит_карт_за_раунд>. Он сохраняет CSV и Markdown-отчёт в reports/stability-simulation.*, запускает одинаковый эвристический ИИ за обе стороны и служит для поиска перекоса первого хода и затяжных матчей, а не для автоматической балансировки карт.
- Ветка
mainпубликуется на GitHub Pages через.github/workflows/static.yml. - Точка входа —
index.html→src/stability-main.ts. Игровая логика —src/game/stability.ts, карты —src/game/cards.ts(500 карт), тесты —src/game/stability.test.ts. - Противник — локальный эвристический ИИ (
aiCommit), не сетевой мультиплеер. - Баланс: симуляция 4000 матчей (случайные колоды из 500 карт) даёт в среднем 5.29 раунда, победы 48.4% / 48.3%, ничьи 1.5%, незавершённых матчей 1.8%. Симуляция зависит от простой эвристики и не заменяет тесты с реальными игроками.