59 lines
2.7 KiB
PHP
59 lines
2.7 KiB
PHP
<?php
|
|
|
|
use yii\bootstrap5\ActiveForm;
|
|
use yii\helpers\Html;
|
|
|
|
$this->title = 'Карточный ужас Аркхэма. Калькулятор вероятностей.';
|
|
?>
|
|
<div class="site-index">
|
|
<div class="body-content">
|
|
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<h3>Параметры колоды</h3>
|
|
<?php $form = ActiveForm::begin([
|
|
'layout' => 'horizontal' ,
|
|
'class' => 'form-horizontal' ,
|
|
]); ?>
|
|
<?= $form->field($deck_form, 'size')->textInput(); ?>
|
|
<?= $form->field($deck_form, 'weapons_items')->textInput(); ?>
|
|
<?= $form->field($deck_form, 'weapons_spells')->textInput(); ?>
|
|
<?= $form->field($deck_form, 'card_prepared_to_worst')->textInput(); ?>
|
|
<?= $form->field($deck_form, 'card_backpack_0')->textInput(); ?>
|
|
<?= $form->field($deck_form, 'card_backpack_2')->textInput(); ?>
|
|
<?= $form->field($deck_form, 'card_initiate')->textInput(); ?>
|
|
<?= Html::submitButton(); ?>
|
|
<?php $form->end(); ?>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<h3>Как это работает:</h3>
|
|
<p>Генерируется некоторое количество случайных перемешиваний колоды. На каждом перемешивании
|
|
выбирается стартовая рука (оставляем любое оружие и любую карту, помогающую его искать,
|
|
всё остальное сбрасывается).</p>
|
|
<p>Далее эмулируем ходы. В каждый ход в следующем приоритете:
|
|
<ul>
|
|
<li>Используем "Посвящённую", если она сыграна в первое же доступное окно игрока</li>
|
|
<li>Если на руке оказалось оружие - играем его</li>
|
|
<li>Если есть помогающие искать оружие карты - играем их</li>
|
|
<li>Берём карты из колоды</li>
|
|
</ul>
|
|
</p>
|
|
<p>Вероятность получить оружие на N-том ходу вычисляется как количество раскладов,
|
|
при котором оружие было сыграно не позже N-го хода, делённое на общее количество
|
|
проэмулированных раскладов.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<h3>Результаты симуляции:</h3>
|
|
<div class="col-md-6">
|
|
<ul>
|
|
<?php for ($i = 0; $i < count($result->probabilities); $i++): ?>
|
|
<li>Ход <?= ($i + 1); ?>: <?= sprintf("%.3f", $result->probabilities[$i] * 100); ?>%</li>
|
|
<?php endfor; ?>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|