Utilisation d'un opérateur pour valider un succès

Résolu/Fermé
patburn_911 - 4 févr. 2013 à 21:12
 patburn_911 - 4 févr. 2013 à 21:57
Bonjour, Voici mon problème:

if ($operateur == "+"):
$succes = ($reponse == $nombre1 + $nombre2) ;

elseif ($operateur == "-"):
$succes = ($reponse == $nombre1 - $nombre2) ;

else:
$succes = ($reponse == $nombre1 * $nombre2) ;

endif;

La situation est la suivante: J'ai une première page qui génère au hasard 2 nombres et un opérateur, soit +, - ou *. Cette page fonctionne. La deuxième page entre en jeu quand on entre une réponse et qu'on veut la valider. Si l'opérateur était l'addition, ça fonctionne on me dit que j'ai la bonne réponse. Si c'est un des deux autres opérateurs, même avec la bonne réponse on m'affiche le message en cas de mauvaise réponse. Mon code est-il mal écrit pour réussir à faire comprendre si j'ai soit une addition, une soustraction ou une multiplication?

Merci d'avance =)



3 réponses

Profil bloqué
4 févr. 2013 à 21:20
salut
je suis pas sur d'avoir compris
ce code c'est ta 2eme page ?

déja le double == me choque dans ce cas la par exemple

$succes = ($reponse == $nombre1 + $nombre2) ;

tu peux donner plus d'infos stp ?
est ce que $reponse est déclaré quelque part ??
0
Désolé je vais préciser je voulais pas faire trop long pour pas décourager les lecteurs mais voici les 2 pages:
(page index, celle qui s'affiche en premier avant la validation d'une réponse)

$indiceoperateur = mt_rand(OP_MIN, OP_MAX);

if ($indiceoperateur < 3) :
$operateur = '+';

elseif ($indiceoperateur > 4) :
$operateur = '-';

else :
$operateur = '*';


endif ;


if ($operateur == '+') :

$nombre1 = mt_rand(VALEUR_MIN_ADD, VALEUR_MAX_ADD) ;
$nombre2 = mt_rand(VALEUR_MIN_ADD, VALEUR_MAX_ADD) ;

elseif ($operateur == '-') :

$nombre1 = mt_rand(VALEUR_MIN_SOUS, VALEUR_MAX_SOUS) ;
$nombre2 = mt_rand(VALEUR_MIN_SOUS, $nombre1) ;

else :

$nombre1 = mt_rand(VALEUR_MIN_MULT, VALEUR_MAX_MULT) ;
$nombre2 = mt_rand(VALEUR_MIN_MULT, VALEUR_MAX_MULT) ;

endif;

setcookie( 'OPERATEUR', $operateur ) ;
setcookie( 'NOMBRE1', $nombre1 ) ;
setcookie( 'NOMBRE2', $nombre2 ) ;


?>

<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title><?= TITRE ?></title>
</head>

<body>
<h1><?= TITRE ?></h1>

<p>Si vous voulez gagner mon respect, trouvez la bonne réponse par vous-même</p>
<p> <?php echo $nombre1 , $operateur , $nombre2 ?> </p>


<form action="essai.php" method="POST"><p>
<input type="number" name="REPONSE" required autofocus>
<input type="submit" value="Allez!">
</p></form>

</body>
</html>

(la deuxième page)

<?php

require_once 'common.php' ;
require_once 'config.php' ;

require_args("OPERATEUR", "NOMBRE1", "NOMBRE2", "REPONSE");

$reponse = intval($_REQUEST["REPONSE"]) ;
$operateur = intval($_REQUEST["OPERATEUR"]) ;
$nombre1 = intval($_REQUEST["NOMBRE1"]) ;
$nombre2 = intval($_REQUEST["NOMBRE2"]);

$indiceoperateur = mt_rand(OP_MIN, OP_MAX);



if ($operateur == '+'):
$succes = ($reponse == $nombre1 + $nombre2) ;

elseif ($operateur == '-'):
$succes = ($reponse == $nombre1 - $nombre2) ;

else:
$succes = ($reponse == $nombre1 * $nombre2) ;

endif;


$peut_abandonner = (!$succes) ;


?>


<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title><?= TITRE ?></title>
</head>

<body>
<h1><?= TITRE ?></h1>
<?php if ($succes): ?>

<p>BRAVO! Vous avez trouvé la bonne réponse.</p>
<form action="."><p>
<input type="submit" value="Rejouer" autofocus>
</p></form>

<?php else: ?>

<p>Ce n'est pas la bonne réponse.</p>
<p> <?php echo $nombre1, $operateur, $nombre2 ?> </p>
<form action="essai.php" method="POST"><p>
<input type="number" name="REPONSE" required autofocus>
<input type="submit" value="Allez!">
</p></form>

<?php if ($peut_abandonner): ?>

<form action="abandon.php" method="POST"><p>
J'en ai marre...<br>
<input type="submit" value="Je donne ma langue au chat!">
</p></form>

<?php endif; ?>

<?php endif; ?>

</body>
</html>

J'ai enlevé ce que je ne croyais pas essentiel, comme une page contenant les constantes pour choisir au hasard les nombres et opérateurs et une page abandon qui s'affiche quand on clique sur le bouton "je donne ma langue au chat!"
0
Ce que je voulais dire dans mon premier post, c'est que pour qu'il y ait $succes , il faut que $reponse soit équivalente à l'opération, par exemple si c'est 23 + 13 je veux que la réponse qu'on entre ($reponse) soit la même que le résultat de l'opération (36)
0