Skip to content

Instantly share code, notes, and snippets.

@4lb0
Created October 31, 2019 21:55
Show Gist options
  • Save 4lb0/b4c58fec828d8970a81b5f25fef64b65 to your computer and use it in GitHub Desktop.
Save 4lb0/b4c58fec828d8970a81b5f25fef64b65 to your computer and use it in GitHub Desktop.
Probability of get a mana dork with Once Upon a Time
<?php
$simulations = 1000000;
$onTheDraw = 1;
$deck = array_merge(
array_fill(0, 14, 'Mana Dork'),
array_fill(0, 4, 'Once Upon a Time'),
array_fill(0, 42, 'Other')
);
function found($card, $start, $total, $deck)
{
for ($i = $start; $i < $start + $total; $i++) {
if ($deck[$i] == $card) {
return true;
}
}
return false;
}
function foundManaDork($start, $total, $deck)
{
return found('Mana Dork', $start, $total, $deck);
}
$found = 0;
for ($i = 0; $i < $simulations; $i++) {
shuffle($deck);
if (found('Mana Dork', 0, 7 + $onTheDraw, $deck)) {
$found++;
} elseif (found('Once Upon a Time', 0, 7 + $onTheDraw, $deck)) {
if (found('Mana Dork', 7 + $onTheDraw, 5, $deck)) {
$found++;
}
}
}
echo $found/$simulations*100 . "% on the ";
echo $onTheDraw ? "draw" : "play";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment