orthographe et commentaires

master
Gnieark 9 years ago
parent a9ab705be9
commit bb3582e2e6

@ -15,7 +15,6 @@ function shikakugen($largeur,$hauteur,$nbeCarres){
//tirer en random l'aire de chaque carré //tirer en random l'aire de chaque carré
$aireRestante=$largeur * $hauteur; $aireRestante=$largeur * $hauteur;
for($i=1;$i<$nbeCarres;$i++){ for($i=1;$i<$nbeCarres;$i++){
$aireOK=false; $aireOK=false;
while($aireOK==false){ while($aireOK==false){
$aire=rand(2,$aireRestante - $nbeCarres + $i); $aire=rand(2,$aireRestante - $nbeCarres + $i);
@ -24,21 +23,25 @@ function shikakugen($largeur,$hauteur,$nbeCarres){
if((in_array($aire,array(2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97))) if((in_array($aire,array(2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97)))
&& ($aire>$largeur) && ($aire>$largeur)
&& ($aire>$hauteur)){ && ($aire>$hauteur)){
//c'est un nombre premier don le seul carré posssible aura un coté =1 et l'autre coté= aire. si ce dernier coté est supérieur /*
//aux cotés de la grille, on ne pourra jamais le placer. * C'est un nombre premier, donc le seul carré posssible aura un coté =1 et l'autre coté= aire.
$aireOK=false; * si ce dernier coté est supérieur aux cotés de la grille, on ne pourra jamais le placer.
*/
$aireOK=false;
} }
} }
$aireParCarre[]=$aire; $aireParCarre[]=$aire;
$aireRestante=$aireRestante-$aire; $aireRestante=$aireRestante-$aire;
//on remplit un passage un array contenant les diviseurs possibles de l'aire.
$diviseurs[$aire]=trouveDiviseurs($aire); $diviseurs[$aire]=trouveDiviseurs($aire);
} }
//le dernier carré
if($aireRestante < 2){goto a;} //le dernier carré prend l'aire restante
if($aireRestante < 2){goto a;}//dans les regles de zigazou, carré de taille 1 interdit
$aireParCarre[]=$aireRestante; $aireParCarre[]=$aireRestante;
$diviseurs[$aireRestante]=trouveDiviseurs($aireRestante); $diviseurs[$aireRestante]=trouveDiviseurs($aireRestante);
shuffle($aireParCarre); shuffle($aireParCarre);
foreach($aireParCarre as $carre){ foreach($aireParCarre as $carre){
//chercher la première position x,y libre //chercher la première position x,y libre
for($y=0;$y<$hauteur;$y++){ for($y=0;$y<$hauteur;$y++){
@ -73,13 +76,13 @@ function shikakugen($largeur,$hauteur,$nbeCarres){
$count++; $count++;
} }
} }
break 2; break 2; //le carré est placé, sert à rien de tester les autres cases.
} }
} }
} }
} }
if($largeurRetenue==0){ if($largeurRetenue==0){
//limpossibilité de placer le carré. retentons //limpossibilité de placer le carré. retentons aec un autre tirage d'aires
goto a; goto a;
} }
} }

Loading…
Cancel
Save