Jeu "devine le nombre"

MrImpDie -  
jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   -
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

1 réponse

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    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
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      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