Groupe PhP

Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Groupe PhP

Forum du groupe d'apprentissage mutuel en PHP

Le deal à ne pas rater :
Bon plan achat en duo : 2ème robot cuiseur Moulinex Companion ...
600 €
Voir le deal

+3
Berdes1
Darkwarrios
oimat
7 participants

    Jeu du "Plus ou Moins?"

    oimat
    oimat
    Novice PHP
    Novice PHP


    Messages : 29
    Date d'inscription : 05/09/2009

    Jeu du "Plus ou Moins?" Empty Jeu du "Plus ou Moins?"

    Message par oimat Dim 6 Sep - 15:40

    Difficulté : 4/5
    Exercice : je crois que vous connaissez le jeu, mais je le rapelle pour ceux qui ne savent pas.
    L'ordi choisit un nombre au hasard (ici ce sera entre 0 et 500).
    Nous, on met un chiffre dans un <input type="text"/>. Sur la même page, PHP va voir si notre chiffre est supérieur, égal ou inférieur au chiffre généré avant.
    Si $notre_chiffre > $php_chiffre, on dit qu'il faut mettre moins, et ainsi de suite.
    Quand $notre_chiffre == $php_chiffre, alors on a gagné Very Happy
    Et il faut indiquer en combien de coups on a trouvé, sinon c'est pas marrant Twisted Evil


    Astuces :
    - pour passer le chiffre généré du début à la fin, on va utiliser un <input type="hidden" /> pour ne pas générer un nouveau chiffre à chaque fois
    - tout se fait via des $_POST, pas besoin de $_GET, mais c'est possible également Very Happy

    Bonne chance, le corrigé va bientôt être finit Very Happy
    Darkwarrios
    Darkwarrios
    Admin & Soutien PHP
    Admin & Soutien PHP


    Messages : 67
    Date d'inscription : 05/09/2009

    Jeu du "Plus ou Moins?" Empty Re: Jeu du "Plus ou Moins?"

    Message par Darkwarrios Dim 6 Sep - 15:57

    aller, en javascript :

    Code:

    <p>
                  <a href="#" onclick="PoM_partie(1,63)">Devine mon nombre Niveau Z&eacute;r0</a><br />
                  <a href="#" onclick="PoM_partie(1,100)">Devine mon nombre Niveau Normal</a><br />
                  <a href="#" onclick="PoM_partie(0,250)">Devine mon nombre Niveau Geek</a><br />
    </p>
    <script type="text/JavaScript">   

      function nb_aleatoire(min, max)
              {
                  var nb = min + (max-min+1)*Math.random();
                  return Math.floor(nb);
              }
                   
              function PoM_manche(min, max)
              {
                  var nb = nb_aleatoire(min, max);        // nb a deviner
                  var cpt = 0;    // nb de coups pour le trouver
                  var saisie;    // nb tape par le joueur
                  var msg = 'Le nombre a deviner est compris entre ' + min + ' et ' + max + '.';

                  do
                  {
                        saisie = prompt(msg);

                        // si "Annuler"
                        if(saisie == null)
                            return 0;
                           
                      if (isNaN(saisie))
                          alert ('Votre nombre comporte des lettres');
                         
                        cpt++;
                        if(saisie > nb)
                            msg = "C'est moins";
                        else
                            msg = "C'est plus";
                  }
                  while(saisie != nb);

                  return cpt;
              }
                   
              function PoM_partie(min, max)
              {
                  var cpt = 0;    // nb de manches jouees
                  var best_score = 0;    // meilleur score
                  var score;      // score de la partie en cours
                  var continuer;

                  do
                  {
                        score = PoM_manche(min, max);  // joue la manche
                        if(score)
                        {
                            cpt++;
                            if(score < best_score || best_score == 0)
                                  best_score = score;
                            continuer = confirm("Bravo, tu as gagne en " + score + " coups.\nVeux-tu rejouer ?");
                        }
                        else
                            continuer = false;
                  }
                  while(continuer);

                  alert("Tu as joue " + cpt + " manche(s).\nTon meilleur score est de " + best_score + " coups.");
                  return best_score;
              }

              //-->
              </script>

    juste pour le plaisir du javascript :p
    oimat
    oimat
    Novice PHP
    Novice PHP


    Messages : 29
    Date d'inscription : 05/09/2009

    Jeu du "Plus ou Moins?" Empty Re: Jeu du "Plus ou Moins?"

    Message par oimat Dim 6 Sep - 16:03

    Ton code est plus zarb que celui du tuto de js
    Darkwarrios
    Darkwarrios
    Admin & Soutien PHP
    Admin & Soutien PHP


    Messages : 67
    Date d'inscription : 05/09/2009

    Jeu du "Plus ou Moins?" Empty Re: Jeu du "Plus ou Moins?"

    Message par Darkwarrios Dim 6 Sep - 16:05

    arf, tant pis xD

    j'ai fais un autre jeu js aussi, mais je poste pas le code ici, c'est pas l'endroit ^^
    Berdes1
    Berdes1
    Soutien PhP
    Soutien PhP


    Messages : 167
    Date d'inscription : 06/09/2009

    Jeu du "Plus ou Moins?" Empty Re: Jeu du "Plus ou Moins?"

    Message par Berdes1 Dim 6 Sep - 16:15

    Darkwarrios : On est pas sur un forum PHP? Shocked

    Autrement, pourquoi utiliser un champs caché plutôt que les sessions? C'est plus sécurisé et c'est plus pratique...
    oimat
    oimat
    Novice PHP
    Novice PHP


    Messages : 29
    Date d'inscription : 05/09/2009

    Jeu du "Plus ou Moins?" Empty Re: Jeu du "Plus ou Moins?"

    Message par oimat Dim 6 Sep - 16:23

    J'y avais pas pensé Razz
    C'est pas une mauvaise idée Very Happy
    oimat
    oimat
    Novice PHP
    Novice PHP


    Messages : 29
    Date d'inscription : 05/09/2009

    Jeu du "Plus ou Moins?" Empty Re: Jeu du "Plus ou Moins?"

    Message par oimat Dim 6 Sep - 16:50

    J'ai finit le corrigé qui marche parfaitement.
    Seulement, comme y'a pas d'option cacher le texte, je vais pas le poster ici.
    SI qqun le veut, envoyez-moi un mp Very Happy
    jecth
    jecth
    Soutien PhP
    Soutien PhP


    Messages : 63
    Date d'inscription : 06/09/2009
    Age : 36
    Localisation : Derrière toi avec un couteau

    Jeu du "Plus ou Moins?" Empty Re: Jeu du "Plus ou Moins?"

    Message par jecth Dim 6 Sep - 17:07

    Dark essaye de faire le fous en JS mdr...

    Je le connait^^ il a un complexe de "dieu" Laughing
    avatar
    kolosta
    Développeur PHP
    Développeur PHP


    Messages : 105
    Date d'inscription : 06/09/2009

    Jeu du "Plus ou Moins?" Empty Re: Jeu du "Plus ou Moins?"

    Message par kolosta Dim 6 Sep - 17:09

    oimat a écrit:J'ai finit le corrigé qui marche parfaitement.
    Seulement, comme y'a pas d'option cacher le texte, je vais pas le poster ici.
    SI qqun le veut, envoyez-moi un mp Very Happy
    Tu l'as fait avec le système de session ou de $_POST?
    oimat
    oimat
    Novice PHP
    Novice PHP


    Messages : 29
    Date d'inscription : 05/09/2009

    Jeu du "Plus ou Moins?" Empty Re: Jeu du "Plus ou Moins?"

    Message par oimat Dim 6 Sep - 17:15

    Session, c'est plus simple Very Happy
    avatar
    kolosta
    Développeur PHP
    Développeur PHP


    Messages : 105
    Date d'inscription : 06/09/2009

    Jeu du "Plus ou Moins?" Empty Re: Jeu du "Plus ou Moins?"

    Message par kolosta Dim 6 Sep - 17:18

    oimat a écrit:Session, c'est plus simple Very Happy
    Je n'ai jamais compris le système de sessions Crying or Very sad
    quelqu'un l'a fait en $_POST?
    oimat
    oimat
    Novice PHP
    Novice PHP


    Messages : 29
    Date d'inscription : 05/09/2009

    Jeu du "Plus ou Moins?" Empty Re: Jeu du "Plus ou Moins?"

    Message par oimat Dim 6 Sep - 17:22

    C'est possible, mais plus chiant , faut réfléchir plus xD
    ptitpunk
    ptitpunk
    Admin
    Admin


    Messages : 111
    Date d'inscription : 05/09/2009
    Age : 30

    Jeu du "Plus ou Moins?" Empty Re: Jeu du "Plus ou Moins?"

    Message par ptitpunk Dim 6 Sep - 17:23

    Je vais tenter le PoM xD
    jecth
    jecth
    Soutien PhP
    Soutien PhP


    Messages : 63
    Date d'inscription : 06/09/2009
    Age : 36
    Localisation : Derrière toi avec un couteau

    Jeu du "Plus ou Moins?" Empty Re: Jeu du "Plus ou Moins?"

    Message par jecth Dim 6 Sep - 17:23

    $_SESSION $_COOKIE $_POST fonctionne de la même manière^^
    avatar
    kolosta
    Développeur PHP
    Développeur PHP


    Messages : 105
    Date d'inscription : 06/09/2009

    Jeu du "Plus ou Moins?" Empty Re: Jeu du "Plus ou Moins?"

    Message par kolosta Dim 6 Sep - 17:24

    oimat a écrit:C'est possible, mais plus chiant , faut réfléchir plus xD
    Parce que j'ai essayé en $_post mais sans succès même si je ne suis pas allé jusqu'au bout de mon script Sad
    Berdes1
    Berdes1
    Soutien PhP
    Soutien PhP


    Messages : 167
    Date d'inscription : 06/09/2009

    Jeu du "Plus ou Moins?" Empty Re: Jeu du "Plus ou Moins?"

    Message par Berdes1 Dim 6 Sep - 17:27

    jecth a écrit:$_SESSION $_COOKIE $_POST fonctionne de la même manière^^

    Non, $_SESSION est stocké sur le serveur, alors que $_COOKIE est stocké sur la machine du client.
    Et $_POST c'est une information que le navigateur envoie à la validation d'un formulaire (il y a d'autres cas, mais plus complexes) alors que $_COOKIE, c'est le serveur qui va le demander au client.
    jecth
    jecth
    Soutien PhP
    Soutien PhP


    Messages : 63
    Date d'inscription : 06/09/2009
    Age : 36
    Localisation : Derrière toi avec un couteau

    Jeu du "Plus ou Moins?" Empty Re: Jeu du "Plus ou Moins?"

    Message par jecth Dim 6 Sep - 17:28

    Oui je sais, mais c'était pour dire qu'a part question technique c'est pas si différent.
    oimat
    oimat
    Novice PHP
    Novice PHP


    Messages : 29
    Date d'inscription : 05/09/2009

    Jeu du "Plus ou Moins?" Empty Re: Jeu du "Plus ou Moins?"

    Message par oimat Dim 6 Sep - 17:31

    kolosta : utilise des <input type="hidden" /> en mettant des values="<?php ... ?>

    je peux pas en dire plus, si tu veux fair en $_POST
    ptitpunk
    ptitpunk
    Admin
    Admin


    Messages : 111
    Date d'inscription : 05/09/2009
    Age : 30

    Jeu du "Plus ou Moins?" Empty Re: Jeu du "Plus ou Moins?"

    Message par ptitpunk Dim 6 Sep - 17:56

    Moi j'ai fait ça :
    Code:
    <?php
    if(isset($_POST['chiffre'])){
    $nombre = rand(1, 100);
    $nombre_in = $_POST['chiffre'];
    while($nombre != $nombre_in){
    if($nombre < $nombre_in){
    echo "C'est Plus !";
    }
    elseif($nombre > $nombre_in){
    echo "C'est Moins!";
    }
    else{
    echo "Vous avez trouvé le nombre mystère !";
    }
    }
    }
    ?>
    <form method="post" action="pom.php"/>
    <input type="text" name="chiffre"/><br/>
    <input type="submit" value="Choisir"/>
    </form>
    Le seul gros problème c'est que ça fait une boucle infinie...
    Mais bon, je pense que tous vos code surpassent largement le mien Laughing
    oimat
    oimat
    Novice PHP
    Novice PHP


    Messages : 29
    Date d'inscription : 05/09/2009

    Jeu du "Plus ou Moins?" Empty Re: Jeu du "Plus ou Moins?"

    Message par oimat Dim 6 Sep - 17:58

    Le problème, avec ton script, c'est que $nombre change à chaque fois...


    Dernière édition par oimat le Dim 6 Sep - 19:33, édité 1 fois
    ptitpunk
    ptitpunk
    Admin
    Admin


    Messages : 111
    Date d'inscription : 05/09/2009
    Age : 30

    Jeu du "Plus ou Moins?" Empty Re: Jeu du "Plus ou Moins?"

    Message par ptitpunk Dim 6 Sep - 18:03

    Ouais c'est rectifié :
    Code:
    <?php
    $nombre = rand(1, 100);
    if(isset($_POST['chiffre'])){
    $nombre_in = $_POST['chiffre'];
    while($nombre != $nombre_in){
    if($nombre < $nombre_in){
    echo "C'est Plus !";
    }
    elseif($nombre > $nombre_in){
    echo "C'est Moins!";
    }
    else{
    echo "Vous avez trouvé le nombre mystère !";
    }
    }
    }
    ?>
    <form method="post" action="pom.php"/>
    <input type="text" name="chiffre"/><br/>
    <input type="submit" value="Choisir"/>
    </form>
    Par contre la boucle infinie est encore là xD
    oimat
    oimat
    Novice PHP
    Novice PHP


    Messages : 29
    Date d'inscription : 05/09/2009

    Jeu du "Plus ou Moins?" Empty Re: Jeu du "Plus ou Moins?"

    Message par oimat Dim 6 Sep - 19:27

    je comprends pas pourquoi tu fais une boucle
    t'en n'as pas besoin
    Single Dark
    Single Dark
    Débutant PHP
    Débutant PHP


    Messages : 63
    Date d'inscription : 06/09/2009
    Age : 35
    Localisation : Brest

    Jeu du "Plus ou Moins?" Empty Re: Jeu du "Plus ou Moins?"

    Message par Single Dark Dim 6 Sep - 20:18

    Voili, Voulou, attention ca pique.

    Code:

    <?php
    $min      =   0;
    $max   =   100;



       if      (isset($_POST['choix'])   &&   !empty($_POST['choix']))
          {
             $var   =   $_POST['var'];

             if      ($_POST['choix'] > $var)
                {
                   $message   =   'C\'est moins';
                   
                   $min      =   ($_POST['min'] != 0) ? $_POST['min'] : 0;
                   $max   =   $_POST['choix'];
                   
                }
             elseif   ($_POST['choix'] < $var)
                {
                   $message   =   'C\'est plus';
                   
                   $min      =   $_POST['choix'];
                   $max   =   ($_POST['max'] != 100) ? $_POST['max'] : 100;
                }
             else
                {
                   $message   =   'Zut, vous avez trouvez le chiffre mistère.';
                   $var   =   NULL;
                }
                

          }
       if      (!isset($var)   &&   !isset($var))
          {
       
             $var   =   rand(0, 100);
          }
    ?>

    <div align="center">
    <form method="POST">
    <h3>Indiquez votre chiffre</h3>
    <input type="hidden" name="var" value="<?php echo $var;?>" />
    <input type="hidden" name="min" value="<?php echo $min;?>" />
    <input type="hidden" name="max" value="<?php echo $max;?>" />
    <input type="button" name="moins" value="<?php echo $min;?>" size="2" disabled="disabled"/>
    <input type="text" name="choix" value="" size="2" />
    <input type="button" name="plus" value="<?php echo $max;?>" size="2" disabled="disabled"/><br /><br />
    <input type="submit" value="Let's GO !!!" />
    </form>
    <?php
       echo $message;
    ?>
    </div>

    Un systeme qui n'utilise pas les SESSIONS, oui, je sais c'est chiant a faire, mais bon.

    Allez hop un autre vite fait avec les sessions :

    Code:

    <?
       session_start();
       
    $min      =   0;
    $max   =   100;



       if      (isset($_POST['choix'])   &&   !empty($_POST['choix']))
          {
             $var   =   $_POST['var'];

             if      ($_POST['choix'] > $_SESSION['plus_moin']['var'])
                {
                   $message   =   'C\'est moins';
                   
                   $_SESSION['plus_moins']['maxi']   =   $_POST['choix'];
                   
                }
             elseif   ($_POST['choix'] < $_SESSION['plus_moin']['var'])
                {
                   $message   =   'C\'est plus';
                   
                   $_SESSION['plus_moins']['mini']   =   $_POST['choix'];
                }
             else
                {
                   $message   =   'Zut, vous avez trouvez le chiffre mistère.';
                   $_SESSION['plus_moin']['var']   =   NULL;
                }
                

          }
       if      (!isset($_SESSION['plus_moin']['var'])   &&   !isset($_SESSION['plus_moin']['var']))
          {
       
             $_SESSION['plus_moin']['var']   =   rand(0, 100);
             $_SESSION['plus_moins']['mini']   =   $min   ;
             $_SESSION['plus_moins']['maxi']   =   $max;
          }
    ?>

    <div align="center">
    <form method="POST">
    <h3>Indiquez votre chiffre</h3>
    <input type="button" name="moins" value="<?php echo $_SESSION['plus_moins']['mini']?>" size="2" disabled="disabled"/>
    <input type="text" name="choix" value="" size="2" />
    <input type="button" name="plus" value="<?php echo $_SESSION['plus_moins']['maxi'];?>" size="2" disabled="disabled"/><br /><br />
    <input type="submit" value="Let's GO !!!" />
    </form>
    <?php
       echo $message;
    ?>
    </div>
    Berdes1
    Berdes1
    Soutien PhP
    Soutien PhP


    Messages : 167
    Date d'inscription : 06/09/2009

    Jeu du "Plus ou Moins?" Empty Re: Jeu du "Plus ou Moins?"

    Message par Berdes1 Dim 6 Sep - 20:29

    Pour min et max, il serait mieux d'utiliser des constantes.
    oimat
    oimat
    Novice PHP
    Novice PHP


    Messages : 29
    Date d'inscription : 05/09/2009

    Jeu du "Plus ou Moins?" Empty Re: Jeu du "Plus ou Moins?"

    Message par oimat Dim 6 Sep - 20:31

    Je vais poster le mien , puisque tout le monde a posté le sien, voici ma correction :

    Code:
    <?php
    session_start();
       // si on a choisi de recommencer, on détruit toutes les variables de session et on en rouvre une autre
       if(isset($_POST['recommencer']))
       {
          session_unset();
          session_destroy();
          unset($_SESSION['nb_tentative'], $_SESSION['nb_trouver'], $_SESSION['nb_demande']);
          session_start();
       }
    ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
        <head>
            <title>Plus ou moins </title>
          <link rel="stylesheet" media="all" type="text/css" href="menu.css" />
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
       
        </head>
       
       <body>
          <p> Le nombre à trouver est compris entre 0 et 500 </p>
       <?php
          
       if(isset($_SESSION['nb_tentative']))
       {
          $_SESSION['nb_tentative'] += 1;
       } // si on est dans une partie, on incrémente le nb de tentatives, sinon on met le compteur à 0
       else
       {
          $_SESSION['nb_tentative'] = 0;
       }
       
       if( !isset($_SESSION['nb_trouver']))
          $_SESSION['nb_trouver'] = mt_rand(0, 500);
       
       
       if( isset($_POST['nb_demande'], $_SESSION['nb_trouver'], $_SESSION['nb_tentative']))
       {
             if( $_POST['nb_demande'] > $_SESSION['nb_trouver'])
                echo ' Moins ';
          // besoin d'explications?
             elseif( $_POST['nb_demande'] < $_SESSION['nb_trouver'])
                echo ' Plus ' ;
             
             elseif( $_POST['nb_demande'] == $_SESSION['nb_trouver'])
                echo ' Bravo, vous avez trouvé en ' . $_SESSION['nb_tentative'] . ' coup.' ;
          
       }
       
       
       ?>
          <form action="#" method="post">
             <input type="text" name="nb_demande" value="
             <?php
             // c'est pratique, de remettre le nombre qu'on a mis avant :D
             if(isset($_POST['nb_demande']))
             echo $_POST['nb_demande'];
             ?> "/>
             <input type="submit"/>
             
          </form>
          
          <form action="#" method="post">
             <input type="submit" name="recommencer" value="Recommencer" />
          </form>
       
       </body>
       
    </html>

    72 lignes au total et seulement 4 variables, dont une pour recommencer Very Happy

    Contenu sponsorisé


    Jeu du "Plus ou Moins?" Empty Re: Jeu du "Plus ou Moins?"

    Message par Contenu sponsorisé


      La date/heure actuelle est Dim 19 Mai - 13:27