Partage
  • Partager sur Facebook
  • Partager sur Twitter

Amélioration : Plus ou moins.

Limiter le nombre de coups.

Sujet résolu
    18 décembre 2006 à 20:02:09

    Bonjour/bonsoir,

    Voilà, j'ai eu l'idée de rajouter un niveau de difficulté au jeu Plus ou Moins.

    Je m'explique. En fait, je voudrais que l'utilisateur trouve le nombre Mystère en 10 coups MAXIMUM. Mais y a un petit problème : une fois les 10 coups épuisés, le programme continue...

    Voilà le code source (Je ne met que la partie qui nous intérésse, dites si vous voulez le reste) :

        /*##########################*/
        /*# DIFFICULTE : DIFFICILE #*/
        /*##########################*/

        else if (choixDeLaDifficulte == 2)
        {
            while (continuerPartie)
            {
                long compteurDeCoups = 1;
                long nombreDeCoupsMaximum = 10;

                srand(time(NULL));                                  /*Génération du*/
                nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;   /*nombre Aléatoire*/

                while (nombreEntre != nombreMystere)
                {
                    nombreDeCoupsMaximum--; /*Décrémentation pour limiter le nombre de coups du joueur*/

                    /*Si le nombre de coups autorisé est épuisé*/
                    if (nombreDeCoupsMaximum == 0)
                    {
                        printf("Le nombre de coups autorise est epuise !\n");
                    }

                    printf("\nRentrez un nombre ");
                    scanf("%ld", &nombreEntre);

                    if (nombreEntre < nombreMystere)
                    {
                        printf("C'est plus ! \n\n");
                    }
                    else if (nombreEntre > nombreMystere)
                    {
                        printf("C'est moins ! \n\n");
                    }
                    else
                    {              /*Si le joueur est gagnant*/
                        printf("Vous avez trouve le nombre Mystere en %ld coups! \n\n", compteurDeCoups);
                        printf("Si vous ne voulez pas rejouer, tapez 0\n");
                        scanf("%ld", &continuerPartie);

                        printf("\n\n");
                    }

                    compteurDeCoups++;  /*Incrémentation pour voir en combien de coups le joueur à trouvé le Nombre Mystère*/
                    nombreDeCoupsMaximum--; /*Décrémentation pour limiter le nombre de coups du joueur*/
                }
            }
        }
        /*__________________________________________________________________________*/


            return 0;
    }


    Voilà, si vous pouviez résoudre mon problème... Merci.

    EDIT : Bon, j'ai réussi à faire apparaître le message printf("Le nombre de coups autorise est epuise !\n");. C'est déjà ça... Mais ça ne coupe pas le programme.
    • Partager sur Facebook
    • Partager sur Twitter
      18 décembre 2006 à 20:21:46

      Il te suffit de rajouter une petite boucle englobant tout ton niveau ^^
      Un truc du style:

      while(nombreDeCoupsMaximum>0)
        {
           //Ton niveau
        }
      • Partager sur Facebook
      • Partager sur Twitter
        18 décembre 2006 à 20:28:00

        Oui j'y ai pensé, mais je la place où exactement la décrémentation ? Car je suis un peu perdu dans ces lignes :euh: .
        • Partager sur Facebook
        • Partager sur Twitter
          18 décembre 2006 à 20:36:59

          La dedans c'ets pas mal ;)


          if (nombreEntre < nombreMystere)
              {
                     printf("C'est plus ! \n\n");
                     //Là...
              }
          else if (nombreEntre > nombreMystere)
              {
                     printf("C'est moins ! \n\n");
                     //...Et ici ^^
              }



          Et tu peux placer l'incrémentation de ton compteur à la même place ;)
          • Partager sur Facebook
          • Partager sur Twitter
            18 décembre 2006 à 20:49:31

            Ok merci pour la réponses j'essaie ça et puis je valide demain si ça marche. Merci beaucoup. A plusch
            • Partager sur Facebook
            • Partager sur Twitter
              18 décembre 2006 à 20:59:14

              moi je pense que la meilleur solution pour placer ta boucle c'est l'ajouter la dedant :

              while (nombreEntre != nombreMystere)


              de cette manière :

              while ((nombreEntre != nombreMystere)||(nombreDeCoupsMaximum>0))


              jouer tant que le nombre n'est pas trouver et tant que le nombre de coup maximum n'est pas depassé...
              • Partager sur Facebook
              • Partager sur Twitter
                19 décembre 2006 à 8:26:28

                Cool super, merci ça fonctionne !

                A bientôt
                • Partager sur Facebook
                • Partager sur Twitter

                Amélioration : Plus ou moins.

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown