Page 1 sur 1

Problème avec elseif

Posté : 05 sept. 2011, 22:05
par Javeec
/* Vos soldats attaquent les soldats ennemis ou les archers*/
	if(($nombre_de_soldats > 0) && ($nombre_de_soldats_alpha > 0))
	{
	echo "<p>Vos $nombre_de_soldats soldats attaquent les $nombre_de_soldats_alpha soldats ennemis.</p>";
	$perte = floor(($nombre_de_soldats + $nombre_d_epees)/ 10);
		if ($perte > $nombre_de_soldats_alpha)
		{
		$perte = $nombre_de_soldats_alpha;
		}
		elseif ($perte < 0)
		{
		$perte = 0;
		}
	$nombre_de_soldats_alpha = $nombre_de_soldats_alpha - $perte;
	echo "<p>Ils tuent $perte soldats.</p><p><img src=\"soldat.jpg\"><img src=\"soldat ennemi.jpg\"></p>";
	}
	elseif (($nombre_de_soldats > 0)&&($nombre_de_soldats_alpha = 0)&&($nombre_d_archers_alpha > 0))
	{
	echo "<p>Vos $nombre_de_soldats soldats attaquent les $nombre_d_archers_alpha archers ennemis.</p>";
	$perte = floor (($nombre_de_soldats + $nombre_d_epees) / 10);
		if ($perte > $nombre_d_archers_alpha)
		{
		$perte = $nombre_d_archers_alpha;
		}
		elseif ($perte < 0)
		{
		$perte = 0;
		}
	$nombre_d_archers_alpha = $nombre_d_archers_alpha - $perte;
	echo "<p>Ils tuent $perte archers ennemis.</p><p><img src=\"soldat.jpg\"><img src=\"archer.jpg\"></p>";
	}
Bonjour,
je sollicite votre aide, car j'ai un problème:
Quand les tous les soldats d'Alpha sont morts, les soldats, bourrins et ninjas du joueur n'attaquent pas les archers d'Alpha, pourquoi?

Merci de ne pas me voler mon script!!! http://www.baston.tk

Re: Problème avec elseif

Posté : 05 sept. 2011, 23:42
par Ryle
Parce qu'ils sont fatigués ?

Je n'ai pas le courage de lire tout le code.. si une partie de ton script n'est pas exécutée, c'est que les conditions qui permettent de l'exécuter ne sont pas respecter... teste ces conditions une par une et regarde si cela correspond bien à ce que tu attends...

Re: Problème avec elseif

Posté : 05 sept. 2011, 23:46
par moogli
salut,

désolé code trop dense.

la démarche pour mieux localiser la chose :
- savoir où se déroule le mécanisme d'action
- savoir d'où viennent les infos.

A partir de la tu peux ajouter des echo ou var_dump "un peu partout" pour suivre le cheminement de ton script et ainsi savoir pourquoi ton script ne fait pas ce que tu veux :)

Si tu réduit le code qui pose soucis on pourra jeter un oeil (la 250 lignes c'est trop ;) )

juste sur les premières lignes je vois des tas de variables qui ne sont déclarée null part, je pense que c'est dû à l'auto déclaration des variables (et c'est le mal )

@+

Re: Problème avec elseif

Posté : 06 sept. 2011, 21:46
par Javeec
je les ai déclarées, mais j'ai enlevé cette partie pour que se soit moins long.

Edit: J'ai enlevé la plus grosse partie.

Re: Problème avec elseif

Posté : 06 sept. 2011, 22:27
par moogli
toujours la même réflexion, a tu comparé les conf des serveurs (via un phpinfo()) ?

@+

Re: Problème avec elseif

Posté : 07 sept. 2011, 21:33
par Javeec
Je pense que le probleme est avec le premier elseif. On peut mettre 3 conditons comme je l'ai fait? J'ai essayé en changeant les && par AND (en enlevant les paranthèses superflues bien sûr.) J'ai aussi essayé de remplacé elseif par if. Ce n'est pas un problème de variable, puisque plus tard elles ont les valeurs qu'elles devraient avoir.

Re: Problème avec elseif

Posté : 07 sept. 2011, 22:33
par Ryle
Si les variables avaient les bonnes valeurs, les conditions seraient exécutées et tu n'aurais pas de problème...

Quelles sont tes valeurs ? Dans quelle conditions est-ce que tu passes (quelles sont les chaines qui sont affichées) ? dans quelles conditions devrais tu passer ? qu'est ce qui fait que tu ne passes pas dans la bonne condition ?

Un premier problème qui apparait dans le elseif, c'est l'affectation au lieu de la comparaison :
elseif (($nombre_de_soldats > 0)&&($nombre_de_soldats_alpha = 0)&&($nombre_d_archers_alpha > 0))
$nombre_de_soldats_alpha sera donc désormais égal à 0. La valeur 0 étant considérée par php comme un booléen false, le test ci-dessus sera toujours faux)

Re: Problème avec elseif

Posté : 08 sept. 2011, 21:27
par Javeec
je dois mettre deux signes d'égalité?

Re: Problème avec elseif

Posté : 08 sept. 2011, 22:05
par Ryle
Tout dépend de ce que tu veux faire :
$nombre_de_soldats_alpha = 0; // affecte la valeur 0 à $nombre_de_soldats_alpha

$nombre_de_soldats_alpha == 0; // compare la valeur de $nombre_de_soldats_alpha à la valeur 0

Re: Problème avec elseif

Posté : 09 sept. 2011, 13:44
par Javeec
Je veux comparer le nombre de soldats à 0. Merci pour votre aide et désolé de vous avoir dérangé pour un "=".