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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Mon array ne prend les changements que quand ca l'arrange?

par cicom » 08 août 2007, 12:24

Erf! Quel nul... Bon je vais me coucher... :(
Merci les gars je mets résolu!

par zeus » 08 août 2007, 12:08

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 ;)

par Genova » 08 août 2007, 11:35

Tu as pas du beaucoup déboguer :

Code : Tout sélectionner

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

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

par cicom » 08 août 2007, 11:27

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);
}