Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C++]mini-jeu

par raport au tuto perso de Davidbrcz

Anonyme
    12 décembre 2005 à 20:54:02

    Bonjour

    alors voila j'ai voulu faire le mini-jeu de ce tuto mais en c++(il est codé en C dans la correction)

    tout allait bien sauf pour la commande aléatoire qui ne marchait pas j'ai fais queulques recherches sur google et j'ai trouvé seulement le nombre censé etre compris entre 0 et 50/75/100 (selon la difficulté) est un truc du genre 1134416971

    voila la source :

    #include <iostream>
    #include <time.h>

    using namespace std;

    int main (void)
    {
        system("color 0a");
        while (1)
        {
              system("cls");
              int nb_rech, nb_user, essai, gagne, diff, aleatoire, x;
              nb_rech = 0;
              nb_user = 0;
              essai = 0;
              gagne = 0;
              diff = 1;
              deb:
              cout<<"entrez votre difficulte"<<endl;
              cout<<"facile [1]"<<endl;
              cout<<"moyen [2]"<<endl;
              cout<<"difficile [3]"<<endl;
              cin>>diff;
              nb_rech = time(NULL);
              srand(nb_rech);
              if (diff == 1)
              {
                       cout<<"vous avez choisi la difficulte facile"<<endl;
                       aleatoire=rand();
                       x=50*rand();
               }
              else if (diff = 2)
              {
                   cout<<"difficulte moyenne"<<endl;
                       aleatoire=rand();
                       x=75*rand();
               }
              else if (diff = 3)
              {
                   cout<<"diffilculte difficile"<<endl;
                       aleatoire=rand();
                       x=100*rand();
               }
              else goto deb;
              while (essai != 5 && gagne != 1)
              {
                    cout<<"entrez un nombre"<<endl;
                    cin>>essai;
                    if (essai > nb_rech)
                    {
                    cout<<"le nombre est plus petit"<<endl;
                    essai++;
                    }
                    else if (essai < nb_rech)
                    {
                         cout<<"le nombres est plus grand"<<endl;
                         essai++;
                         }
                    else if (essai == nb_rech)
                    {
                         cout<<"bravo vous avez entrez le bon nombre!!!";
                         gagne = 1;
                     }
               }
                         if (gagne == 1)
                         {
                                   cout<<"vous avez gagnez!!!!cliquez sur une touche pour recomencer";
                         }
                         else
                         {
                             cout<<"vous avez perdu :/ le nombre etait"<< nb_rech<< " cliquez sur une touche pour recomencer";
                             system("pause");
                         }
    }
    }

    • Partager sur Facebook
    • Partager sur Twitter
      12 décembre 2005 à 21:31:13

      Salut !
      essaye donc en remplaçant

          nb_rech = time(NULL);
          srand(nb_rech);

      par

          randomize();
          nb_rech = rand() % valeurAléatoireMax;


      voilà j'espère que ça t'aideras !
      • Partager sur Facebook
      • Partager sur Twitter
        12 décembre 2005 à 22:12:35

        randomize ça n'existe pas en C standard et à vrai dire je ne l'ai jamais vu.
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          12 décembre 2005 à 22:22:55

          merci mais je dois inclure quoi pour utiliser randomize(); ???
          • Partager sur Facebook
          • Partager sur Twitter
            12 décembre 2005 à 22:26:00

            je sais bien qu'elle n'éxiste pas en C mais ThE.13eSt a dis qu'il essayais de le refaire en C++.
            Sinon randomize(), il faut inclure iostream.h (moi je me sert de C++ Builder de Borland. Je ne sais pas si cette fonction éxiste sur d'autre EDI mais ça ne m'étonnerais pas qu'elle y soit) et ça marche très bien chez moi .... mais sinon je ne sais pas comment faire autrement !
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              12 décembre 2005 à 22:47:13

              iostream.h marche mais pas ta commande

              bon la j'ai juste essayé vite fait je contiuerai plus tard
              • Partager sur Facebook
              • Partager sur Twitter
                12 décembre 2005 à 22:57:05

                [ Posté le 12/12/2005 à 22h57 ]
                pk ça fonctionne pas ? il te dis quoi ? tu te sert de DEV C++ ?
                désolé pour le mass-question :p je vais le télécharger et voir comment faire.


                [ Posté le 13/12/2005 à 00h08 ]
                Tient un system anti-flood pas mal ça !
                Bon j'ai réussi a régler le problème.

                    int nb_rech = time(NULL);
                    srand(nb_rech);
                    nb_rech %= valeurAleatoireMax;


                Tu avais oublié la dernière ligne. Et le bout de code est testé et approuvé sous DEV C++.
                Sinon, j'ai bien l'impression que la fonction randomize() est spécifique à C++ Builder.
                Si ça bug encore dis-le !
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  13 décembre 2005 à 20:57:45

                  oui je me sers de dev cpp mais le truc se compile tres bien ce qui plante c'est les limite de chiffre qui ne fonctionne pas(mais se compilent)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    13 décembre 2005 à 21:04:18

                    moi perso, je verrai plus ça comme ça :

                    int nb_rech = time(NULL);
                    srand(nb_rech);

                    x = rand()%valeurAleatoireMax;
                    • Partager sur Facebook
                    • Partager sur Twitter
                      13 décembre 2005 à 21:25:38

                      en effet cette manière fonctionne. En fait oublie la mienne... je viens d'essayer un truc et maintenant ce n'est plus un générateur de nombre aléatoire mais un compteur ..... en fait j'ai rien changer du tout ....... je comprend plus rien du tout .....
                      sinon tu avais quand même oublier la dernière ligne avec le % (le modulo)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        13 décembre 2005 à 21:41:55

                        Au fait la fonction time(); retourne le nombre de secondes écoulés depuis le 1 Janvier 1970 mais il n'y aurait-t-il pas une autre fonction toute prête pour donner l'heure et la date d'aujourd'hui ?
                        Flemme de passer par /60/60/24/31/365 et puis c'est pas précis de toute façon :)
                        • Partager sur Facebook
                        • Partager sur Twitter

                        [C++]mini-jeu

                        × 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