Jeu "devine le nombre"

Fermé
MrImpDie - 22 oct. 2020 à 20:49
jordane45 Messages postés 38184 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 23 mai 2024 - 22 oct. 2020 à 21:57
Bonjour !

Je suis en train de faire un jeu "devine le nombre" et je suis peut-etre pas tres malin mais j'arrive pas a faire en sorte que l'utilisateur puisse choisir la valeur max du jeu, genre si le nombre max peut aller jusqu'a 10 - 20 - 30 voir 100, voila j'espere avoir été clair, je vous mets le code que j'ai juste en dessous :

<?php

session_start();

if(!isset($_SESSION['nombreguess']))
{
$_SESSION['nombreguess'] = rand(1, 10);
}

if(!isset($_SESSION['compteur']))
{
$_SESSION['compteur'] = 0;
}
else
{
$_SESSION['compteur']++;
}

$rand = $_SESSION['nombreguess'];
$compteur = $_SESSION['compteur'];
$guess = isset($_POST['guess']) ? (int) $_POST['guess'] : false;

if($guess == $rand)
{
unset($_SESSION['nombreguess']);
unset($_SESSION['compteur']);
}

?>

<!DOCTYPE>
<html>
<head>
<title>Devine nombre</title>
</head>

<body>

<h1>Devine le nombre entre 1 et 10</h1>

<?php

if ($guess != false)
{
print "<hr />";
print "Le nombre que tu as entré est $guess <br />";

if ($guess == $rand)
{
print "Tu as réussi ! <br />";
print "En ".$compteur." éssai(s).";
}
else if ($guess != $rand)
{
if($guess > $rand)
{
print "Tu es trop haut. <br />";
}
else if ($guess < $rand)
{
print "Tu es trop bas. <br />";
}
}
}

?>

<hr />

<?php if($guess != $rand): ?>
<form action = "" method = "post">
<fieldset>
<label>Entre un nombre: </label>
<input type = "text" name = "guess" /><br />
<button type = "submit">Envoi</button>
</fieldset>
</form>
<?php else: ?>
<a href="index.php">Appuye ici pour recommencer !</a>
<?php endif; ?>

<!--

Nbre random: <?php echo $rand; ?>

Compteur: <?php echo $counter; ?>

<?php echo htmlspecialchars($guess); ?>


-->

</body>
</html>


Configuration: Windows / Chrome 86.0.4240.75
A voir également:

1 réponse

yg_be Messages postés 22805 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 mai 2024 1 469
22 oct. 2020 à 21:28
bonjour,
peux-tu utiliser les balises de code quand tu partages du code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

à quel endroit du code essaies-tu de permettre à l'utilisateur de préciser la valeur max du jeu?
0
jordane45 Messages postés 38184 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 23 mai 2024 4 670
22 oct. 2020 à 21:57
Bonjour,

En complément de la remarque (et de la question ) d'Yg_be,
voici ton code réécrit un peu plus "proprement"
<?php
session_start();

//Affichage des erreurs PHP ( à placer AU DEBUT du script )
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

//variable permettant définir la valeur max du random...
// A voir comment tu veux la faire parvenir ici.. en session ? via une variable dans l'url en $_GET ? via un autre formulaire dans ton code en $_POST
// bref.. à toi de modifier la ligne ci-dessous :
$valeurMax = !empty($_SESSION['valeurmax']) ? $_SESSION['valeurmax']: 10;

// récupération "propre" des autres variables AVANT de les utiliser
$compteur = !empty($_SESSION['compteur']) ? $_SESSION['compteur']++ : 0;
$guess = isset($_POST['guess']) ? (int) $_POST['guess'] : false;
$rand = !empty($_SESSION['nombreguess']) ? (int) $_SESSION['nombreguess']  : NULL ;

if(!$rand) {
  $rand = rand(1, $valeurMax);
  $_SESSION['nombreguess'] = $rand;
}

$_SESSION['compteur'] = $compteur;

// Début du traitement du formulaire :
if ($guess != false) {
  if ($guess == $rand ) {
    $resultat = "Tu as réussi ! <br />Le nombre que tu as entré est $guess <br />";
    unset($_SESSION['nombreguess']);
    unset($_SESSION['compteur']);
    
  }else{
    if($guess < $rand ){
      $resultat = "Tu es trop bas. <br />";
    }else{
      $resultat = "Tu es trop haut. <br />";
    }
  }
}

?>
<!DOCTYPE>
<html>
  <head>
    <title>Devine nombre</title>
    <meta charset="utf-8">
  </head>
  <body>

    <h1>Devine le nombre entre 1 et 10</h1>

    <?php

    if ($guess != false) {
      print "<hr>";
      print "Le nombre que tu as entré est $guess <br />";
      echo !empty($resultat) ? "<hr>". $resultat : "" ;
    }

    ?>

    <hr />

    <?php if($guess != $rand): ?>
    <form action = "" method = "post">
      <fieldset>
        <label>Entre un nombre: </label>
        <input type = "text" name = "guess" /><br />
        <button type = "submit">Envoi</button>
      </fieldset>
    </form>
    <?php else: ?>
      <a href="index.php">Appuyer ici pour recommencer !</a>
    <?php endif; ?>

  </body>
</html>

Je t'invite, au passage, à lire ET à appliquer les conseils donnés ici
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

.
0