Page 1 sur 1

Mon array ne prend les changements que quand ca l'arrange?

Posté : 08 août 2007, 11:27
par cicom
Salut à tous!
Voila dans le cadre de ma nouvelle fonction de combat dont la dev traine un peu parce que je suis pris par mon boulot et par d'autres projets j'utilise cette fonction (ci dessous).
Le hic c'est que quand je fais afficher les deux array en question les changements n'ont pas été pris je ne sais pas pourquoi. J'ai pourtant fait moulte tests et j'ai mis deux echo de test pour voir à chaque fois qu'il y a changement d'état (et il y a des changements d'états)
Ca fait un bout de temps que je suis sur ce problème si quelqu'un pouvait m'aider ca m'arrangerai bien.
Voila la fonction.
function atq_confront ($ar1, $ar2, $nu1, $nu2)
{
 $nbd1 = 0;
 $nbd2 = 0;
 while($nbd1 < $nu1 AND $nbd2 < $nu2)
 {
  $mark = 0;
  while($mark = 0)
  {
   $rand1 = rand(0, $nu1);
   if($ar1[$rand1][3] == 1) {$mark++;}
  }
  $mark = 0;
  while($mark = 0)
  {
   $rand2 = rand(0, $nu2);
   if($ar2[$rand2][3] == 1) {$mark++;}
  }
  $ar2[$rand2][2] -= $ar1[$rand1][1];
  $ar1[$rand1][2] -= $ar2[$rand2][1];
  if($ar2[$rand2][2] <= 0) { $ar2[$rand2][3] = 0; $nbd2++; echo 'unité morte 2<br />';}
  if($ar1[$rand1][2] <= 0) { $ar1[$rand1][3] = 0; $nbd1++; echo 'unité morte 1<br />';}
 }
 $arfinal = array();
 $arfinal[1] = $ar1;
 $arfinal[2] = $ar2;
 return ($arfinal);
}

Posté : 08 août 2007, 11:35
par Genova
Tu as pas du beaucoup déboguer :

Code : Tout sélectionner

while($mark = 0)
tu utilises un = et non un == ;)

Posté : 08 août 2007, 12:08
par zeus
C'est le genre d'erreur qu'on est capable de lire 200 fois sans le voir tellement on est sûr que la syntaxe est correcte ... je parle d'expérience ;)

Posté : 08 août 2007, 12:24
par cicom
Erf! Quel nul... Bon je vais me coucher... :(
Merci les gars je mets résolu!