From a72dc82a6e2a74c9a121328031eb8fe199118024 Mon Sep 17 00:00:00 2001 From: Denis Denisov Date: Sat, 4 Oct 2025 08:32:54 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=B5=D0=B1=D0=BE=D0=BB=D1=8C=D1=88?= =?UTF-8?q?=D0=BE=D0=B9=20=D1=85=D0=B5=D0=BB=D0=BF=20=D0=B8=20docker-compo?= =?UTF-8?q?se?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 2 +- views/site/index.php | 48 ++++++++++++++++++++++++++++++-------------- 2 files changed, 34 insertions(+), 16 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 86be3bd..bfeb90e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,4 +6,4 @@ services: - ~/.composer-docker/cache:/root/.composer/cache:delegated - ./:/app:delegated ports: - - '8000:80' + - '8891:80' diff --git a/views/site/index.php b/views/site/index.php index 4570521..488477e 100644 --- a/views/site/index.php +++ b/views/site/index.php @@ -10,24 +10,42 @@ $this->title = 'Карточный ужас Аркхэма. Калькулято
-

Параметры колоды

- 'horizontal' , - 'class' => 'form-horizontal' , - ]); ?> - field($deck_form, 'size')->textInput(); ?> - field($deck_form, 'weapons_items')->textInput(); ?> - field($deck_form, 'weapons_spells')->textInput(); ?> - field($deck_form, 'card_prepared_to_worst')->textInput(); ?> - field($deck_form, 'card_backpack_0')->textInput(); ?> - field($deck_form, 'card_backpack_2')->textInput(); ?> - field($deck_form, 'card_initiate')->textInput(); ?> - - end(); ?> - +

Параметры колоды

+ 'horizontal' , + 'class' => 'form-horizontal' , + ]); ?> + field($deck_form, 'size')->textInput(); ?> + field($deck_form, 'weapons_items')->textInput(); ?> + field($deck_form, 'weapons_spells')->textInput(); ?> + field($deck_form, 'card_prepared_to_worst')->textInput(); ?> + field($deck_form, 'card_backpack_0')->textInput(); ?> + field($deck_form, 'card_backpack_2')->textInput(); ?> + field($deck_form, 'card_initiate')->textInput(); ?> + + end(); ?> +
+
+

Как это работает:

+

Генерируется некоторое количество случайных перемешиваний колоды. На каждом перемешивании + выбирается стартовая рука (оставляем любое оружие и любую карту, помогающую его искать, + всё остальное сбрасывается).

+

Далее эмулируем ходы. В каждый ход в следующем приоритете: +

    +
  • Используем "Посвящённую", если она сыграна в первое же доступное окно игрока
  • +
  • Если на руке оказалось оружие - играем его
  • +
  • Если есть помогающие искать оружие карты - играем их
  • +
  • Берём карты из колоды
  • +
+

+

Вероятность получить оружие на N-том ходу вычисляется как количество раскладов, + при котором оружие было сыграно не позже N-го хода, делённое на общее количество + проэмулированных раскладов. +

+

Результаты симуляции:

    probabilities); $i++): ?>