JeuWeb - Crée ton jeu par navigateur
Valeur absolue - 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 : Valeur absolue (/showthread.php?tid=698)



Valeur absolue - P0ulp0r - 25-01-2007

Yop.

J'ai un petit probleme depuis que j'ai mit une valeur aboslue. Mon script ne marche plus.

Est ce qu'on utilise comme cela la fonction valeur absolue en php:
Code PHP :
<? if ( ((abs($_POST['envoyersteeltrooper'])) * 2000 + (abs($_POST['envoyersteeltrooper2'])) * 2500 + (abs($_POST['envoyersteeltrooper3'])) * 2500 ) <= $ressource['usine_qtt']) {
?>

Merci d'avance


RE: Valeur absolue - P0ulp0r - 25-01-2007

Voici la page entiere:

Code PHP :
<?php 
// UNA //

// on récupere les ressources et le nombre d'unités


//je vais chercher les crédits que dispose le joueur
$ressou = mysql_query('SELECT * FROM '.$table_usine.' WHERE '.$champ_id_production_usine.'=1 AND '.$champ_id_joueur_usine.'=\''.$_SESSION['id_joueur'].'\'');
$ressource = mysql_fetch_array($ressou) or die(mysql_error());

// je vais chercher le nombre d'unité de Steel Trooper du joueur en prenant la table // unite_joueur //
// Tout en prenant l'id de l'unité des Steel Troopers // id_unite_unite_joueur=1 //
// Et l'id du joueur // id_joueur_unite_joueur=\''.$_SESSION['id_joueur'].' //
$nombre1 = mysql_query('SELECT * FROM '.$table_unite_joueur.' WHERE '.$champ_id_unite_joueur.'=1 AND '.$champ_id_joueur_unite_joueur.'=\''.$_SESSION['id_joueur'].'\'');
$nombreunite1 = mysql_fetch_array($nombre1) or die(mysql_error());

// je vais chercher le nombre d'unité de Steel Trooper Lance Missile du joueur en prenant la table // unite_joueur //
// Tout en prenant l'id de l'unité des Steel Troopers Lance Missiles // id_unite_unite_joueur=2 //
// Et l'id du joueur // id_joueur_unite_joueur=\''.$_SESSION['id_joueur'].' //
$nombre2 = mysql_query('SELECT * FROM '.$table_unite_joueur.' WHERE '.$champ_id_unite_joueur.'=2 AND '.$champ_id_joueur_unite_joueur.'=\''.$_SESSION['id_joueur'].'\'');
$nombreunite2 = mysql_fetch_array($nombre2) or die(mysql_error());

// je vais chercher le nombre d'unité de Tac Arm du joueur en prenant la table // unite_joueur //
// Tout en prenant l'id de l'unité des Tac Arm // id_unite_unite_joueur=3 //
// Et l'id du joueur // id_joueur_unite_joueur=\''.$_SESSION['id_joueur'].' //
$nombre3 = mysql_query('SELECT * FROM '.$table_unite_joueur.' WHERE '.$champ_id_unite_joueur.'=3 AND '.$champ_id_joueur_unite_joueur.'=\''.$_SESSION['id_joueur'].'\'');
$nombreunite3 = mysql_fetch_array($nombre3) or die(mysql_error());



// on regarde si le joueur dispose d'assez de ressource
// Donc on fait toutes les demandes du joueur fois leurs prix
// et on regarde si c'est inférieur aux crédits dont il dispose // $ressource['usine_qtt'] //
if ( (abs($_POST['envoyersteeltrooper'])) * 2000 + (abs($_POST['envoyersteeltrooper2'])) * 2500 + (abs($_POST['envoyersteeltrooper3'])) * 2500 <= $ressource['usine_qtt'])
{


// Steel trooper, ressource //

// Si le joueur demande 1 ou plus d'unités de Steel troopers
if (isset($_POST['envoyersteeltrooper'])>=1)
{

// On fait le prix d'une unité // (- 2000) //, fois le nombre de demande du joueur // abs($_POST['envoyersteeltrooper']); //
$r1 = (- 2000) * abs($_POST['envoyersteeltrooper']);

// On regarde combien d'unité de ce type dispose maintenant le joueur
// Donc il dispose du nombre de demande faite lors du recrutement, plus le nombre qu'il disposait déjà
$ajoutunite1 = abs($_POST['envoyersteeltrooper']) + $nombreunite1['nombre_unite_joueur'];

// Maintenant on update le nombre d'uité de ce type en mettant la nouvelle valeur
mysql_query("UPDATE '.$table_unite_joueur.' SET '.$champ_nombre_unite_joueur.' = '$ajoutunite1' WHERE '.$champ_id_unite_joueur.'=1 AND '.$champ_id_joueur_unite_joueur.'='".$_SESSION['id_joueur']."'");

// fin Steel trooper, ressource
}


// Steel trooper Lance missile, ressource

// On refait la meme disposition qu'au dessus en changeant les valeurs // $nombreunite // et // envoyersteeltrooper //
if (isset($_POST['envoyersteeltrooper2'])>=1)
{

$r2 = (- 2500) * abs($_POST['envoyersteeltrooper2']);

$ajoutunite2 = abs($_POST['envoyersteeltrooper2']) + $nombreunite2['nombre_unite_joueur'];

mysql_query("UPDATE '.$table_unite_joueur.' SET '.$champ_nombre_unite_joueur.' = '$ajoutunite2' WHERE '.$champ_id_unite_joueur.'=2 AND '.$champ_id_joueur_unite_joueur.'='".$_SESSION['id_joueur']."'");

//fin Steel trooper Lance missile, ressource
}

// Tac Arm, ressource

if (isset($_POST['envoyersteeltrooper3'])>=1)
{

$r3 = (- 2500) * abs($_POST['envoyersteeltrooper3']);

$ajoutunite3 = abs($_POST['envoyersteeltrooper3']) + $nombreunite3['nombre_unite_joueur'];

mysql_query("UPDATE '.$table_unite_joueur.' SET '.$champ_nombre_unite_joueur.' = '$ajoutunite3' WHERE '.$champ_id_unite_joueur.'=3 AND '.$champ_id_joueur_unite_joueur.'='".$_SESSION['id_joueur']."'");

// fin Tac Arm, ressource
}


// Maintenant on calcule les ressources que ca va lui couter
// on additionne toutes les demandes et on Update avec la nouvelle valeur
$totalressource = $ressource['usine_qtt'] + $r1 + $r2 + $r3 ;
mysql_query("UPDATE '.$table_usine.' SET '.$champ_qtt_usine.' = '$totalressource' WHERE '.$champ_id_production_usine.'=1 AND '.$champ_id_joueur_usine.'='".$_SESSION['id_joueur']."'");

// On le redirige


// slash de fin si ressource assez importante
}


// sinon les ressources ne sont pas suffisantes
else
{
echo
' Ressources insufisantes !!';

}
?>



RE: Valeur absolue - carlou - 26-01-2007

abs fonctionne tres bien, la ou des fois ca peut poser pb c'est dans ta façon d'ecrire tes formules

par ex: la ou tu met dans ton if:
Code PHP :
<?php 
if ( (abs($_POST['envoyersteeltrooper'])) * 2000 + (abs($_POST['envoyersteeltrooper2'])) * 2500 + (abs($_POST['envoyersteeltrooper3'])) * 2500 <= $ressource['usine_qtt'])
{

tu devrais mettre je pense

Code PHP :
<?php 
if ( ((abs($_POST['envoyersteeltrooper'])) * 2000) + ((abs($_POST['envoyersteeltrooper2'])) * 2500) + ((abs($_POST['envoyersteeltrooper3'])) * 2500) <= $ressource['usine_qtt'])
{

voir meme:

Code PHP :
<?php 
if ( ((abs($_POST['envoyersteeltrooper'])) * 2000) + ((abs($_POST['envoyersteeltrooper2'])) * 2500) + (((abs($_POST['envoyersteeltrooper3'])) * 2500) <= $ressource['usine_qtt']))
{

ou meme

Code PHP :
<?php 
if ( (((abs($_POST['envoyersteeltrooper'])) * 2000) + ((abs($_POST['envoyersteeltrooper2'])) * 2500) + ((abs($_POST['envoyersteeltrooper3'])) * 2500)) <= $ressource['usine_qtt'])
{

c'est tout bete mais c'est classique car c'est interpreté differement suivant comment tu place tes parentheses


RE: Valeur absolue - P0ulp0r - 26-01-2007

Merci Big Grin