165 lines
7.4 KiB
PHP
Executable File
165 lines
7.4 KiB
PHP
Executable File
<?PHP
|
|
function calculInfoTour($numero_tour,$nb_joueur,$nb_qualif){
|
|
global $infoTour;
|
|
echo "nb_joueur**".$nb_joueur."<br>";
|
|
echo "nb_qualif**".$nb_qualif."<br>";
|
|
$nb_joueur_de_trop=$nb_joueur-$nb_qualif;
|
|
echo "nb_joueur_de_trop**".$nb_joueur_de_trop."<br>";
|
|
if ($nb_joueur_de_trop<=$nb_qualif){
|
|
|
|
$infoTour[$numero_tour][nb_match]=$nb_joueur_de_trop; echo "<br> infoTour[".$numero_tour."][nb_match]".$infoTour[$numero_tour][nb_match];
|
|
//$infoTour[$numero_tour-1][nb_joueur_entrant]=$nb_joueur-(2*$nb_joueur_de_trop); echo "<br> infoTour[".$numero_tour."-1][nb_joueur_entrant]".$infoTour[$numero_tour-1][nb_joueur_entrant];
|
|
//$infoTour[$numero_tour][nb_joueur_entrant]=0;
|
|
$infoTour[$numero_tour][nb_joueur_entrant]=2*$nb_joueur_de_trop; echo "<br> infoTour[".$numero_tour."][nb_joueur_entrant]".$infoTour[$numero_tour][nb_joueur_entrant]."<br>";
|
|
}
|
|
else {
|
|
echo "TOUR : $numero_tour";
|
|
$infoTour[$numero_tour][nb_match]=$nb_qualif; echo "<br> infoTour[".$numero_tour."][nb_match]".$infoTour[$numero_tour][nb_match];
|
|
$infoTour[$numero_tour][nb_joueur_entrant]=$nb_qualif; echo "<br> infoTour[".$numero_tour."][nb_joueur_entrant]".$infoTour[$numero_tour][nb_joueur_entrant]."<br>";
|
|
$nb_joueur=$nb_joueur-$nb_qualif;
|
|
$infoTour[1][nb_joueur_entrant]=3;
|
|
echo "<br>REPONSE : infoTour[1][nb_joueur_entrant]".$infoTour[1][nb_joueur_entrant]."<br>";
|
|
calculInfoTour($numero_tour+1,$nb_joueur,$nb_qualif);
|
|
}
|
|
}
|
|
|
|
copy("faits_fixes_tableau.fai","./cer/tab/tab.fai");
|
|
$faits=fopen("./cer/tab/tab.fai","a");
|
|
include("conf.php");
|
|
include("mysql_compat.php");
|
|
include ("conf.php");
|
|
$db_connection=mysql_connect($db_host,$db_user,$password);
|
|
mysql_select_db($db_name,$db_connection);
|
|
//////////////////////////////////////////////////RECHERCHE DES JOUEURS DANS CETTE CATEGORIE/////////////////////////////////////
|
|
$tab_classement=array("0/6","1/6","2/6","3/6","4/6","5/6","15/0","15/1","15/2","15/3","15/4","15/5","30/0","30/1","30/2","30/3","30/4","30/5","NC");
|
|
///////////////////////////////RECHERCHE DES JOUEURS QUALIFIES////////////////////////////
|
|
$nb_joueur=0;
|
|
if ($avencement !=(19+18*($double))){
|
|
$requete="SELECT vainqueur, id_match FROM `match` WHERE categorie = '$categorie' AND avencement = '$avencement' AND tour='$tour';";
|
|
$reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
while ($reptab=mysql_fetch_array($reponse)){
|
|
$nb_joueur++;
|
|
//$ligne="";
|
|
$ligne="JOUEUR_Q".$['']." ' JOUEUR\n";fwrite($faits,$ligne);
|
|
$ligne="JOUEUR_Q".$['']." JOUE PAS_D_ADVERSAIRE\n";fwrite($faits,$ligne);
|
|
$ligne="JOUEUR_Q".$['']." ENTRE TOUR_1\n";fwrite($faits,$ligne);
|
|
$ligne="JOUEUR_Q".$['']." EST_CLASSE PIRE\n";fwrite($faits,$ligne);
|
|
$tour_q[$['']]=1;
|
|
}
|
|
}
|
|
/////////////// RECHERCHE DES JOUEURS QUI VONT ENTRER DANS LE TOURNOI ////////////////////////////////
|
|
for ($i=$avencement-1;$i>=$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()."<br>");
|
|
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;
|
|
}
|
|
}
|
|
|
|
mysql_close($db_connection);
|
|
global $infoTour;
|
|
if ($nb_joueur > 2*$nb_qualif){
|
|
$infoTour[][nb_match]=0;
|
|
$infoTour[][nb_joueur_entrant]=0;
|
|
calculInfoTour(0,$nb_joueur,$nb_qualif);
|
|
//$infoTour[1][nb_joueur_entrant]=3;
|
|
echo "<br>REPONSE : infoTour[1][nb_joueur_entrant]".$infoTour[1][nb_joueur_entrant]."<br>";
|
|
$nb_tour=count ($infoTour);
|
|
$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 "<br> ".$no_tour."++joueurs entrants++".$infoTour[$i][nb_joueur_entrant]."++nb match++".$infoTour[$i][nb_match]."/$i";
|
|
echo "<br> infoTour[".$i."][nb_joueur_entrant]".$infoTour[$i][nb_joueur_entrant]."<br>";
|
|
$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.<br>";
|
|
//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"."<br>";
|
|
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"."<br>";
|
|
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 "<br><br><br>";
|
|
$env=fopen("./cer/tab/tab.env","r");
|
|
$i=0;
|
|
while(!feof($env)){
|
|
$ligne=fgets($env);
|
|
//echo $ligne."<br>";
|
|
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]."<br>";
|
|
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";
|
|
}
|
|
$i++;
|
|
break;
|
|
default :
|
|
break;
|
|
}
|
|
}
|
|
for($i=0;$i<count($info_match);$i++){
|
|
//echo "tour ".$info_match[$i][tour]." : ".$info_match[$i][insc1]."-".$info_match[$i][insc2]."<br>";
|
|
$match[$info_match[$i][tour]][]=$info_match[$i][insc1]."-".$info_match[$i][insc2];
|
|
}
|
|
include ("enregistrementMatch.php");
|
|
}
|
|
else {
|
|
$erreur= "<center><font color=00ff00><h3>Il n'y a pas assez de joueurs pour faire ".$nb_qualif." matchs aux dernier tour.</h3></font></center>";
|
|
include ("quelTranche.php");
|
|
}
|
|
?>
|
|
|