Classe : Schwan\MTG\Controller\Math01

Fichier PHP
| Mardi 12 Mars 2024, 18:17:52

<?php
/**
* MTG Schwan
*
* GNU General Public License
*
* Copyright © 2020 - 2022, Yohann Schwan. All rights reserved.
*/
namespace Schwan\MTG\Controller {

class
Math01 extends Math
{
/**
* @args void
* @return bool
*/
function populate()
{
if(empty(
$_REQUEST['card_size']))
{
$_REQUEST['card_size'] = 4;
}

if(empty(
$_REQUEST['land_size']))
{
$_REQUEST['land_size'] = 24;
}

if(empty(
$_REQUEST['deck_size']))
{
$_REQUEST['deck_size'] = 60;

#
return parent::populate();
}

$_REQUEST['game_mulligan_size'] = min(5, $_REQUEST['game_mulligan_size']);

#
$_REQUEST['deck_size'] = min(99, $_REQUEST['deck_size']);
$_REQUEST['card_size'] = min($_REQUEST['card_size'], $_REQUEST['deck_size']);
$_REQUEST['land_size'] = min($_REQUEST['land_size'], $_REQUEST['deck_size'] - $_REQUEST['card_size']);

$deck = array_fill(0, $_REQUEST['deck_size'], 0);

for(
$id = 0; $id < $_REQUEST['card_size']; $id++)
{
$deck[$id] = 1;
}

for(
$id_2 = 0; $id_2 < $_REQUEST['land_size']; $id_2++)
{
$deck[$id + $id_2] = 2;
}

$this->deck = $deck;

return
parent::populate();
}

/**
* @args void
* @return bool
*/
function calculate()
{
$deck = $this->deck;
$k_max = $_REQUEST['game_start_status'] ? 8 : 7;

for(
$m = 0; $m < $_REQUEST['game_mulligan_size'] + 1; $m++)
{
shuffle($deck);

$q = array(1 => false, 2 => false);

for(
$k = 0; $k < $k_max; $k++)
{
$q[$deck[$k]] = true;
}

if(
$q[1] && $q[2])
{
return
true;
}
}
}
}
}