JeuWeb - Crée ton jeu par navigateur
[REGLE]problème de calcul apparemment ^^ - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [REGLE]problème de calcul apparemment ^^ (/showthread.php?tid=910)



[REGLE]problème de calcul apparemment ^^ - TiliN - 18-05-2007

Code PHP :
<?php 
$diviseura
= $vx1a + $vx2a + $vx3a ;
$diviseurd = $vx1d + $vx2d + $vx3d ;

if (
$diviseurd == 0){ $diviseurd = "1" ; }
else {}
$pourcentvxaperdu = floor(((($restevx1a * 100)+($restevx2a * 100)+($restevx3a * 100)) / $diviseura)/3) ;
$pourcentvxdperdu = floor(((($restevx1d * 100)+($restevx2d * 100)+($restevx3d * 100)) / $diviseurd)/3) ;

if (
$vainqueur == 0) //vainqueur attaquant
{
if (
$pourcentvxaperdu <= 10) {$pca = 0;}
elseif(
$pourcentvxaperdu <= 50) {$pca = rand(10,25);}
else {
$pca = mt_rand(20,35);}




if (
$pourcentvxdperdu <= 10) {$pcd = 0;}
elseif(
$pourcentvxdperdu <= 50) {$pcd = rand(15,35);}
else {
$pcd = mt_rand(30,45);}

}

elseif (
$vainqueur == 1) //vainqueur défenseur
{
if (
$pourcentvxaperdu <= 10) {$pca = 0;}
elseif(
$pourcentvxaperdu <= 50) {$pca = rand(20,35);}
else {
$pca = mt_rand(30,45);}


if (
$pourcentvxdperdu <= 10) {$pcd = 0;}
elseif(
$pourcentvxdperdu <= 50) {$pcd = rand(20,35);}
else {
$pcd = mt_rand(30,50);}

}

elseif (
$vainqueur == 2) //égalité
{
if (
$pourcentvxaperdu <= 10) {$pca = 0;}
elseif(
$pourcentvxaperdu <= 50) {$pca = rand(10,25);}
else {
$pca = mt_rand(25,40);}


if (
$pourcentvxdperdu <= 10) {$pcd = 0;}
elseif(
$pourcentvxdperdu <= 50) {$pcd = rand(15,35);}
else {
$pcd = mt_rand(35,50);}

}

else {}

//pertes détaillés
//attaquant
$pertesvx1a = $vx1a - $restevx1a ;
$pertesvx2a = $vx2a - $restevx2a ;
$pertesvx3a = $vx3a - $restevx3a ;

//defenseur
$pertesvx1d = $vx1d - $restevx1d ;
$pertesvx2d = $vx2d - $restevx2d ;
$pertesvx3d = $vx3d - $restevx3d ;

//calcul recupération
//attaquant
$amrecup = $pca * (($pertesvx1a * $prixmetalvx1)+($pertesvx2a * $prixmetalvx2)+($pertesvx3a * $prixmetalvx3));
$aorecup = $pca * (($pertesvx1a * $prixorvx1)+($pertesvx2a * $prixorvx2)+($pertesvx3a * $prixorvx3));
$atrecup = $pca * (($pertesvx1a * $prixthoriumvx1)+($pertesvx2a * $prixthoriumvx2)+($pertesvx3a * $prixthoriumvx3));
$ahrecup = $pca * (($pertesvx1a * $prixhydrogenevx1)+($pertesvx2a * $prixhydrogenevx2)+($pertesvx3a * $prixhydrogenevx3));

//défensseur
$dmrecup = $pcd * (($pertesvx1d * $prixmetalvx1)+($pertesvx2d * $prixmetalvx2)+($pertesvx3d * $prixmetalvx3));
$dorecup = $pcd * (($pertesvx1d * $prixorvx1)+($pertesvx2d * $prixorvx2)+($pertesvx3d * $prixorvx3));
$dtrecup = $pcd * (($pertesvx1d * $prixthoriumvx1)+($pertesvx2d * $prixthoriumvx2)+($pertesvx3d * $prixthoriumvx3));
$dhrecup = $pcd * (($pertesvx1d * $prixhydrogenevx1)+($pertesvx2d * $prixhydrogenevx2)+($pertesvx3d * $prixhydrogenevx3));

//calcul pillage ressources défenseur si et seulement si l'attaquant gagne ....

if($vainqueur == 0)
{
//mise à jour des donnée de récupération ...
$pcpa = rand(10,30);
//Attaquant
$amrecup = $amrecup + (($pcpa*$metald)/100);
$aorecup = $aorecup + (($pcpa*$goldd)/100);
$atrecup = $atrecup + (($pcpa*$thoriumd)/100);
$ahrecup = $ahrecup + (($pcpa*$hydrogened)/100);
//défenseur
$dmrecup = $dmrecup - (($pcpa*$metald)/100);
$dorecup = $dorecup - (($pcpa*$goldd)/100);
$dtrecup = $dtrecup - (($pcpa*$thoriumd)/100);
$dhrecup = $dhrecup - (($pcpa*$hydrogened)/100);


Voici le code en cause.
Voilà, j'attaque quelqu'un sans défance, il s'avère que :

Citation :15 pca
0 pcd
33 $pourcentvxaperdu
0 $pourcentvxaperdu

alors que pca et $pourcentvxaperdu devraient êtres égal à 0 comme il n'y a aucune pertes ^^


voilà, ça fait 2h30 que je bloque, enfin que l'on bloque (moi et mon co-admin) sur ce problème.
Si vous trouvez, chapeau Smile


RE: problème de calcul apparemment ^^ - OncleJames - 18-05-2007

Citation :if ($pourcentvxaperdu <= 10) {$pca = 0;}
elseif($pourcentvxaperdu <= 50) {$pca = rand(10,25);}

Si la première condition est verifié la seconde aussi
6 < 10
mais 6 < 50


RE: problème de calcul apparemment ^^ - TiliN - 18-05-2007

C'est bon j'ai trouvé, je ne prenais pas le nombre de pertes mais les vaisseaux qu'il restait ....

bref une idiotie réglé après + de 2 h 30 de réflexion intense :p


Merci quand même


RE: problème de calcul apparemment ^^ - TiliN - 18-05-2007

Oui donc un problème aussi d'ici ....