=$fin_tranche;$i--){ $requete="SELECT classement, id_inscription FROM `inscription`, `joueur` WHERE inscription.categorie = '$categorie' AND joueur.classement = '$i' AND inscription.joueur=joueur.id_joueur AND inscription.valider='1';"; $reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."
"); while ($reptab=mysql_fetch_array($reponse)){ $nb_joueur++; $ligne="JOUEUR_".$['']." ' JOUEUR\n";fwrite($faits,$ligne); $ligne="JOUEUR_".$['']." JOUE PAS_D_ADVERSAIRE\n";fwrite($faits,$ligne); $ligne="JOUEUR_".$['']." ENTRE TOUR_1\n";fwrite($faits,$ligne); $ligne="JOUEUR_".$['']." EST_CLASSE ".$tab_classement[$['']]."\n";fwrite($faits,$ligne); $tour[$['']]=1; } } global $infoTour; if ($nb_joueur > 2*$nb_qualif){ $nb_inscrit[]=0; for ($i=19;$i>=0;$i=$i-1){ $nb_inscrit[$i]=0; } $requete2="SELECT joueur FROM inscription WHERE categorie='$categorie' AND valider='1'"; $reponse2=mysql_query($requete2,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."
"); while ($inscription=mysql_fetch_object($reponse2)){ $requete3="SELECT classement,nom,prenom FROM joueur WHERE id_joueur='$inscription->joueur'"; $reponse3=mysql_query($requete3,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."
"); $joueur1=mysql_fetch_object($reponse3); $classement=$joueur1->classement; $nb_inscrit[$classement]=$nb_inscrit[$classement]+1; } $max=0; for( $i=0;$i<19;$i++){ if ($nb_inscrit[$i]>$max){ $max=$nb_inscrit[$i]; } } //echo "max : ",$max,"
"; $nb_tour=$nb_joueur/$max; $nb_tour=floor($nb_tour); /*********************************************RECHERCHE DE LA CATEGORIE DU DEBUT DU TABLEAU************************/ //echo "nb tour : ",$nb_tour,"
"; $j=19; for ($j;$j>=0;$j=$j-1){ if ($nb_inscrit[$j]!=0) { $debut=$j; break; } } //echo "Début : ",$tab_classement[$debut]," Nombre : ",$nb_inscrit[$debut],"
"; /*****************************************************************************************************/ /*********************************************RECHERCHE NB COMPRESSION ************************/ $Nb_comp=abs($nb_inscrit[$debut]-$nb_qualif); //echo "Nb compression : ",$Nb_comp,"
"; /*****************************************************************************************************/ /*********************************************RECHERCHE NB MATCH A PLACER ************************/ $nb_match_a_placer=$nb_joueur-$nb_qualif; //echo "Nb match à placer : ",$nb_match_a_placer,"
"; /*****************************************************************************************************/ /*********************************************PLACEMENT MATCH TOUR MAX ************************/ $infoTour[$nb_tour-1][nb_match]=$nb_qualif+$Nb_comp; $infoTour[$nb_tour-1][nb_joueur_entrant]=$nb_qualif*2+$Nb_comp*2; $nb_match_a_placer=$nb_match_a_placer-$nb_qualif*2-$Nb_comp; $nb_joueur_restant=$nb_joueur-($nb_qualif*2+$Nb_comp*2); //echo "Nb match à placer : ",$nb_match_a_placer,"
"; //echo "Nb joueur à placer : ",$nb_joueur_restant,"
"; /*****************************************************************************************************/ /*********************************************CAS POSSIBLE POUR LE NOMBRE DE MATCHS RESTANTS ************************/ $indice2=0; for ($i=$nb_qualif;$i<=($nb_qualif+$Nb_comp);$i++){ for ($indice=0;$indice<$nb_tour-2;$indice++){ $nb[$indice][$indice2]=$i; } $indice2++; } if ($nb_tour=="4"){ $i=0; $k=1; for ($j=0;$j<=$Nb_comp;$j++){ if ($k<$nb_tour-2){ for ($l=0;$l<=$Nb_comp;$l++){ if ($nb[$i][$j]>=$nb[$k][$l]){ /*echo $i,"-",$j; echo " | ",$nb[$i][$j]," | "; echo $k,"-",$l; echo " | ",$nb[$k][$l]," | ";*/ $total=$nb[$i][$j]+$nb[$k][$l]; if ($total==$nb_match_a_placer){ $infoTour[$nb_tour-2][nb_match]=$nb[$i][$j]; $infoTour[$nb_tour-2-$k][nb_match]=$nb[$k][$l]; //echo "total : ",$total,"
"; break; } else{ //echo "
"; } $total=0; } } } } /*****************************************************************************************************/ /*********************************************CALCUL DU NOMBRE DE MATCH PAR TOUR ************************/ for( $ind=$nb_tour-1;$ind>=1;$ind--){ if ($infoTour[$ind][nb_match]>=$infoTour[$ind-1][nb_match] and $infoTour[$ind-1][nb_match]!=""){ $p=$infoTour[$ind][nb_match]-$infoTour[$ind-1][nb_match]; //echo "tour ",$ind," diff ",$p; if ($ind==$nb_tour-1){ $infoTour[$ind-1][nb_joueur_entrant]=$infoTour[$ind-1][nb_match]-$p; $nb_joueur_restant=$nb_joueur_restant-$infoTour[$ind-1][nb_joueur_entrant]; //echo $nb_joueur_restant; } else { //echo $infoTour[$ind][nb_joueur_entrant]; $infoTour[$ind-1][nb_joueur_entrant]=$infoTour[$ind-1][nb_match]-$p; $nb_joueur_restant=$nb_joueur_restant-$infoTour[$ind-1][nb_joueur_entrant]; //echo $nb_joueur_restant; } } } } else if ($nb_tour=="3"){ $infoTour[1][nb_match]=$nb_match_a_placer; if ($infoTour[1][nb_match]<=$infoTour[2][nb_match]){ $e=$infoTour[2][nb_match]-$infoTour[1][nb_match]; $infoTour[1][nb_joueur_entrant]=$infoTour[1][nb_match]-$e; $nb_joueur_restant=$nb_joueur_restant-$infoTour[1][nb_joueur_entrant]; } } /*****************************************************************************************************/ /*********************************************PLACEMENT MATCH TOUR 0 ************************/ $infoTour[0][nb_match]=$nb_qualif; $infoTour[0][nb_joueur_entrant]=$nb_joueur_restant; /*****************************************************************************************************/ $ligne="\n\n";fwrite($faits,$ligne); $ligne="NB_TOUR ' ".$nb_tour."\n";fwrite($faits,$ligne); $ligne="TOUR_COURANT ' ".$nb_tour."\n";fwrite($faits,$ligne); for( $i=$nb_tour-1;$i>=0;$i--){ $no_tour=$nb_tour-$i; //echo "
".$no_tour."++joueurs entrants++".$infoTour[$i][nb_joueur_entrant]."++nb match++".$infoTour[$i][nb_match]; //echo "
infoTour[".$i."][nb_joueur_entrant]".$infoTour[$i][nb_joueur_entrant]."
"; //echo "
infoTour[".$i."][nb_match]".$infoTour[$i][nb_match]."
"; $ligne="\nTOUR_".$no_tour." ' TOUR\n";fwrite($faits,$ligne); $ligne="TOUR_".$no_tour." NUMERO ".$no_tour."\n";fwrite($faits,$ligne); $ligne="TOUR_".$no_tour." NB_MATCH ".$infoTour[$i][nb_match]."\n";fwrite($faits,$ligne); $ligne="TOUR_".$no_tour." NB_JOUEUR_ENTRANT ".$infoTour[$i][nb_joueur_entrant]."\n";fwrite($faits,$ligne); for($j=0;$j<$infoTour[$i][nb_match];$j++){ //if ($no_tour<$nb_tour) { $ligne="VAINQUEUR_".$no_tour."-".$j." ' JOUEUR\n";fwrite($faits,$ligne); $ligne="VAINQUEUR_".$no_tour."-".$j." JOUE PAS_D_ADVERSAIRE\n";fwrite($faits,$ligne); $ligne="VAINQUEUR_".$no_tour."-".$j." ENTRE TOUR_".($no_tour + 1)."\n";fwrite($faits,$ligne); $ligne="VAINQUEUR_".$no_tour."-".$j." EST_CLASSE PIRE\n";fwrite($faits,$ligne); // } } } fclose($faits); //echo "base faits ecrite.
"; //echo "lancement des moteurs "systeme expert"; $file="tab"; $dir="cer/tab/"; //echo "compil -rf 1 bcc=".$dir.$file.".bcc reg=".$dir.$file.".reg fts=".$dir.$file.".fai err=".$dir.$file.".err1 m=n"."
"; exec("./cer/compil -rf 1 bcc=".$dir.$file.".bcc reg=".$dir.$file.".reg fts=".$dir.$file.".fai err=".$dir.$file.".err1 m=n"); //echo "moteur bcc=".$dir.$file.".bcc fts=".$dir.$file.".fai res=".$dir.$file.".res err=".$dir.$file.".err2 t=4 s=c m=n"."
"; exec("./cer/moteur bcc=".$dir.$file.".bcc fts=".$dir.$file.".fai res=".$dir.$file.".res err=".$dir.$file.".err2 t=4 s=c m=n"); //echo "


"; $env=fopen("./cer/tab/tab.env","r"); $i=0; while(!feof($env)){ $ligne=fgets($env); //echo $ligne."
"; list($objet,$attribut,$valeur)=explode(" ",$ligne); switch ($attribut){ case "ENTRE" : list($type_joueur,$id_insc)=explode("_",$objet); if ($id_insc[0]=='Q'){ list($rien,$no_match)=explode("Q",$id_insc); $tour_q[$no_match]=$valeur[5]; } else $tour[$id_insc]=$valeur[5]; //echo $id_insc." entre tour".$tour[$id_insc]."
"; break; case "JOUE" : list($type_joueur1,$id_insc1)=explode("_",$objet); list($type_joueur2,$id_insc2)=explode("_",$valeur); if ($type_joueur1=="JOUEUR") { $info_match[$i][insc1]=$id_insc1; if ($id_insc1[0]=='Q'){ list($rien,$no_match)=explode("Q",$id_insc1); $info_match[$i][tour]=$tour_q[$no_match]; } else $info_match[$i][tour]=$tour[$id_insc1]; } else { $info_match[$i][insc1]="V"; list($tour,$rien)=explode("-",$id_insc1); $info_match[$i][tour]=$tour+1; } if ($type_joueur2=="JOUEUR") { $info_match[$i][insc2]=$id_insc2; } else { $info_match[$i][insc2]="V"; list($tour,$rien)=explode("-",$id_insc2); $info_match[$i][tour]=$tour+1; } $i++; break; default : break; } } for($i=0;$i"; $match[$info_match[$i][tour]][]=$info_match[$i][insc1]."-".$info_match[$i][insc2]; } include ("enregistrementMatch.php"); } else { $erreur= "

Il n'y a pas assez de joueurs pour faire ".$nb_qualif." matchs aux dernier tour.

"; include ("quelTranche.php"); } ?>