Skip to content
spbRustyPublic

About

Collectible card game prototype (JavaScript)

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

Стабильность — карточная дуэль

Постапокалиптическая карточная дуэль двух лагерей. Ядро — одна шкала Стабильности: она одновременно и здоровье, и «цена» розыгрыша карт.

Правила

  • Стартовая Стабильность — 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%. Симуляция зависит от простой эвристики и не заменяет тесты с реальными игроками.

About

Collectible card game prototype (JavaScript)

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages