Classe : Schwan\MTG\Controller\Math04

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
Math04 extends Math
{
/**
* @args void
* @return bool
*/
function populate()
{
if(empty(
$_REQUEST['untapped_land_size']))
{
$_REQUEST['untapped_land_size'] = 12;
}

if(empty(
$_REQUEST['tapped_land_size']))
{
$_REQUEST['tapped_land_size'] = 12;
}

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

#
return parent::populate();
}

#
$_REQUEST['deck_size'] = min(99, $_REQUEST['deck_size']);
$_REQUEST['untapped_land_size'] = min($_REQUEST['untapped_land_size'], $_REQUEST['deck_size']);
$_REQUEST['tapped_land_size'] = min($_REQUEST['tapped_land_size'], $_REQUEST['deck_size'] - $_REQUEST['untapped_land_size']);

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

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

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

$this->deck = $deck;

#
return parent::populate();
}

/**
* @args void
* @return bool
*/
function calculate()
{
$deck = $this->deck;
shuffle($deck);

$k_max = $_REQUEST['game_start_status'] ? 8 : 7;

$s = array(0, 0, 0);

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

if(
$s[1] < 1)
{
return
false;
}

$k++;
$s[$deck[$k]]++;

if(
$s[1] < 2)
{
return
false;
}

$k++;
$s[$deck[$k]]++;

return (
$s[1] > 2) || ($s[2] > 0);
}
}
}