All pastes #500865 Raw Edit

Sp4rKy

public php v1 · immutable
·published 2007-05-21 19:39 UTC
rendered paste body
class random {/*** Constructeur*/public function random(){}private static  $unplayed = Array();private static  $all = Array();private static  $id = 0;private static  $partie = 1; //Par défaut on commence à la première partieprivate $tire = Array();private static $nbplayers;//Méthodes publiques/*** @name select_couple : Crée un nouveau couple de joueur* @param : référence vers l'instance de la classe mysql*/public function tirage($mysql_ref){    //On regarde d'abord si des gens n'ont pas joué la partie dernière, si oui on en prend 1 et on le mets avec quelqu'un tiré au sort    global $unplayed,$all;    //$tire = Array();    $equipes = Array();    $unplayed = $mysql_ref->select_unplay();    $all = $mysql_ref->select_all();    $this->nbplayers = sizeof($all);    $taille = sizeof($unplayed);    $nbplayer_restant = sizeof($all);    $this->tire = array();    //On commence par prendre les gens n'ayant pas joué une des parties précédentes    for ($i = 0;$i < $taille;$i++){        if ($this->tire[$unplayed[$i]] != 'deja'){            $j = rand(0,sizeof($all)-1);            $this->tire[$unplayed[$i]] = 'deja';            while (($this->tire[$j] == 'deja') or ($mysql_ref->verif_couple($unplayed[$i],$j))){               if ($j == sizeof($all)-1) {                    $j = 0;                } else {                    $j++;                }                                }            $equipes[sizeof($equipes)] = new couple($unplayed[$i],$j,$this->partie);            $this->tire[$j] = 'deja';            $nbplayer_restant = $nbplayer_restant - 2;        }    }    //Si on a un nombre impauir d'équipes    if (sizeof($equipes)%2 != 0) {        //Tirage du premier joueur            $k = rand(0,sizeof($all)-1);            while($this->tire[$k] == 'deja') {                if ($k == sizeof($all)-1) {                        $k = 0;                    } else {                        $k++;                    }                }                $this->tire[$k] = 'deja';                //Tirage du second joueur                $l = rand(0,sizeof($all)-1);            while(($this->tire[$l] == 'deja') or ($mysql_ref->verif_couple($k,$l))){                if ($l == sizeof($all)-1) {                    $l = 0;                } else {                    $l++;                }           }            $this->tire[$l] = 'deja';            //On a un couple n'ayant pas déjà joué ensemble            $equipes[sizeof($equipes)] = new couple($k,$l,$this->partie);            $nbplayer_restant = $nbplayer_restant - 2;    }    $i = sizeof($equipes);    //Ensuite on prend les joueurs restants    while ($nbplayer_restant > 3){        for ($o=0;$o < 2;$o++){            //Tirage du premier joueur            $k = rand(0,sizeof($all)-1);            while($this->tire[$k] == 'deja') {                if ($k == sizeof($all)-1) {                        $k = 0;                    } else {                        $k++;                    }                }                $this->tire[$k] = 'deja';                //Tirage du second joueur                $l = rand(0,sizeof($all)-1);                            while(($this->tire[$l] == 'deja') or ($mysql_ref->verif_couple($k,$l))){            if ($l == sizeof($all)-1) {                    $l = 0;                } else {                    $l++;                }           }            //On a un couple n'ayant pas déjà joué ensemble        $this->tire[$l] = 'deja';         $equipes[$i] = new couple($k,$l,$this->partie);            $nbplayer_restant = $nbplayer_restant - 2;        $i++;        }    }return $equipes;}/*** @name get_unplay : identifie les joueurs ne jouant pas cette partie* @return un tableau contenant les joueurs ne jouant pas cette partie* @warning méthode à appeler après tirage() */public function get_unplay(){    $result = Array();    $o = 0;    $sql = new mysql();    for ($i = 0; $i < $this->nbplayers;$i++){        if ($this->tire[$i] != 'deja'){            $result[$o] = $i;            $o++;            $sql->add_unplay($i,$this->partie);        }    }    return $result;}}//class