begin process at 2012 05 31 02:12:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

Probleme de récursivité


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme de récursivité

lundi 6 avril 2009 à 23:04:25 | Probleme de récursivité

ketluts

Bonjour à tous, voilà je me suis amusé à créer un générateur de labyrinthe et ayant vu qu'un défi avait eu lieu justement sur ce forum il y a maintenant plusieurs mois je me suis dit qu'on pourrait peut-être m'aider0 Le probleme est le suivant, le code genere bien des labyrinthe et rapidement cependant au delà d'une taille de 60*60 environ (quelque fois même à partir de 58*58) mon serveur Apache redemarre. Dans le fichier Apache error log j'ai les messages suivants: [Mon Apr 06 19:38:05 2009] [notice] Parent: child process exited with status 3221225725 -- Restarting. [Mon Apr 06 19:38:10 2009] [notice] Apache/2.2.11 (Win32) PHP/5.2.8 configured -- resuming normal operations [Mon Apr 06 19:38:10 2009] [notice] Server built: Dec 10 2008 00:10:06 [Mon Apr 06 19:38:10 2009] [notice] Parent: Created child process 3244 [Mon Apr 06 19:38:11 2009] [notice] Child 3244: Child process is running [Mon Apr 06 19:38:11 2009] [notice] Child 3244: Acquired the start mutex. [Mon Apr 06 19:38:11 2009] [notice] Child 3244: Starting 64 worker threads. [Mon Apr 06 19:38:11 2009] [notice] Child 3244: Starting thread to listen on port 80. Il me semble que c'est un probleme de récursivité dans mon programme (comme si le serveur considérais que mes boucles etaient infinies et donc plante et redemarre) enfin c'est juste une supposition. Voila le code en question :



"; exit;}else{ $largeur=$_POST['largeur']; $hauteur=$_POST['hauteur']; echo"




";} $nbpi=$largeur*$hauteur; $liste=NULL; $coord=NULL; //PREPARATION DES BORDS DU PLAN : DEBUT for($i=0;$i <= $nbpi-1;$i++) { $check_pi[$i][0]=$i+1; $check_pi[$i][1]=0; $piece[$i][0]=$i+1; $piece[$i][1]=1; $piece[$i][2]=1; $piece[$i][3]=1; $piece[$i][4]=1; $liste[$i]=$piece[$i]; } for($i=0;$i <= $largeur-1;$i++) { $liste[$i][2]=2; $j=$nbpi-$i-1; $liste[$j][1]=2; } for($i=0;$i <= $hauteur-1;$i++) { $k=$largeur*$i; $liste[$k][4]=2; $j=$largeur-1+$largeur*$i; $liste[$j][3]=2; } //PREPARATION DES BORDS DU PLAN : FIN //FONCTION POUR MELANGER UNE LISTE : DEBUT function rand_liste($liste,$newliste){ $n=count($liste); $m=count($newliste); if($n>0){ $alea=rand(0,$n-1); $newliste[$m]=$liste[$alea]; $az=0; for($d=0;$d <= $n-1;$d++) { if($d==$alea){} else{$liste2[$az]=$liste[$d]; $az=$az+1;} } if(isset($liste2)){ $newliste=rand_liste($liste2,$newliste); } else{$liste2=NULL; $newliste=rand_liste($liste2,$newliste);} } else{return $newliste;} return $newliste; } //FONCTION POUR MELANGER UNE LISTE : FIN //FONCTION DE GENERATION DU LABYRINTHE : DEBUT function generation($pi){ global $check_pi, $largeur; global $liste; $check_pi[$pi-1][1]=1; if($pi!="k") { //CREER LA LISTE DES PIECES POSSIBLES $coord[0][1]=$pi+$largeur; $coord[0][2]="a"; $coord[1][1]=$pi-$largeur; $coord[1][2]="b"; $coord[2][1]=$pi+1; $coord[2][2]="d"; $coord[3][1]=$pi-1; $coord[3][2]="g"; $g=0; for($i=0;$i <= 3;$i++) { $ok1=0; $ok2=0; if($liste[$pi-1][$i+1]==1){$ok2=1; if($check_pi[$coord[$i][1]-1][1]!=1){$ok1=1;} else{} } else{} if($ok1==1 AND $ok2==1){ if($i==0){ $liste_coord[$g][1]=$pi+$largeur; $liste_coord[$g][2]="a"; } elseif($i==1){ $liste_coord[$g][1]=$pi-$largeur; $liste_coord[$g][2]="b"; } elseif($i==2){ $liste_coord[$g][1]=$pi+1; $liste_coord[$g][2]="d"; } elseif($i==3){ $liste_coord[$g][1]=$pi-1; $liste_coord[$g][2]="g"; } $g=$g+1; } else{} } unset($ok1,$ok2,$coord,$g); if(isset($liste_coord)){} else{$liste_coord=NULL; $check_pi[$pi-1][1]=1;} if($liste_coord!=NULL){ $liste_coord=rand_liste($liste_coord,NULL); $nn=count($liste_coord);} else{} if(!isset($nn)){$check_pi[$pi-1][1]=1; return;} else{ for($k=0;$k <= $nn-1;$k++) { if($check_pi[$liste_coord[$k][1]-1][1]!=1){ if($liste_coord[$k][2]=="a"){$liste[$pi-1][1]=3; $liste[$liste_coord[$k][1]-1][2]=3;} elseif($liste_coord[$k][2]=="b"){$liste[$pi-1][2]=3; $liste[$liste_coord[$k][1]-1][1]=3;} elseif($liste_coord[$k][2]=="d"){$liste[$pi-1][3]=3; $liste[$liste_coord[$k][1]-1][4]=3;} elseif($liste_coord[$k][2]=="g"){$liste[$pi-1][4]=3; $liste[$liste_coord[$k][1]-1][3]=3;} else{$liste_coord[$k][1]="k"; $check_pi[$pi-1][1]=1;} generation($liste_coord[$k][1]); }else{} } } } else{return;} return; } //FONCTION DE GENERATION DU LABYRINTHE : FIN $pi=rand(1,$nbpi); // ON CHOISIT UNE PIECE AU HAZARD POUR DEBUTER LA GENERATION generation($pi); // ON GENERE LE LABYRINTHE //AFFICHAGE DU LABYRINTHE : DEBUT echo"Labyrinthe de $nbpi pièces :
"; $i=1; $j=1; for($c=1; $c<=$nbpi; $c++){ $case=$nbpi-($i*$largeur)+$j; $mot=$liste[$case-1]; $m0=$mot[0]; $m1=$mot[1]; $m2=$mot[2]; $m3=$mot[3]; $m4=$mot[4]; if($case==1){$m4=3;}else{} if($case==$nbpi){$m3=3;}else{} if($m1!=3){$m1="1px solid black;";}else{$m1="none";} if($m2!=3){$m2="1px solid black;";}else{$m2="none";} if($m3!=3){$m3="1px solid black;";}else{$m3="none";} if($m4!=3){$m4="1px solid black;";}else{$m4="none";} echo""; if($c%$largeur==0){echo""; $i=$i+1; $j=1;}else{ $j=$j+1;} } echo"
 
"; echo "Génération en ".getTime()/1000,' s'; //AFFICHAGE DU LABYRINTHE : FIN ?>
Merci d'avance pour votre aide.
lundi 6 avril 2009 à 23:05:50 | Re : Probleme de récursivité

ketluts

Arf je pensait pas que la mise en page du message allait être comme ça...
mardi 7 avril 2009 à 05:51:10 | Re : Probleme de récursivité

kohntark

Membre Club
Salut,

En général la mise en forme ne se remet pas toute seule :)
Est ce possible d'avoir un code lisible ?

Cordialement,

Kohntark -



Cette discussion est classée dans : notice, hauteur, child, largeur, apr


Répondre à ce message

Sujets en rapport avec ce message

Probleme avec easy php [ par kurosaki4d ] Bonjour :) Voilà j'ai un gros souci avec Easy php qui ne veut pas marcher pour moi Apache et Mysql sont bien en marche mais quand je tape l'adre Apache et MySQL ne démarrent pas !! [ par boualiasma ] Bonjour, Je voulais travailler avec le SGBD Mysql avec EasyPHP pour la création de base des données. J'ai installé une nouvelle version EasyPHP 5.5.3 Probleme popup Javscript et php [ par corbakoo ] Bonsoir à tous Voilà mon probleme :J'utilise la fonction :function popup(page,largeur,hauteur,options){ var top=(screen.height-hauteur)/2; var left=( Pb php : ImageCreateFromJPEG [ par Trascal ] /*Bijour,j'ai un ti pb en php :/ quelqu'un pourrait-il m'aider? voici mon pb$donnees est de type "fichier.jpg"et $directory est un répertoire que l'on pb redimension image jpeg/bmp [ par David_monchy ] Salut à tous, j'ai voulu faire une fonction permettant de redimensionner une image uploadée. Je me suis inspiré des fonctions de ce site, et tout marc attaque upload [ par speedylol ] Bonjour j'ai trouver une petit script ici sur sympa que j'ai modifier pour crée des miniature en respctant le dimensions , mais j'ai un probléme d'att redimenssionner image [ par fvv ] Bonjour, Le code que j'utilise pour réduire la taille de mes images ne marche pas : ça me crée une miniature 150*150 dans le bon dossier mais toute no detection navigateur [ par gaillardo ] Bonjour à tous,J'ai un petit problème avec une détection de navigateur avec getenv("HTTP_USER_AGENT") qui fonction bien en local avec easyPHP mais lor problèm affichage miniature [ par fornatus ] Bonjour je n'arrive pas à afficher mes miniatures malgré le fait que celles-ci restent cliquables et s'ouvrent correctement dans une pop.Voici le code ameliorer mon code pour la redimension d'image [ par 0123azerty ] bjr a tous ...// connexion à la BDinclude ('bdd.php');<br


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,749 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales