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