Partage
  • Partager sur Facebook
  • Partager sur Twitter

Petite question sur un détail!

    15 janvier 2006 à 5:23:37

    Dans le 1er tp de l'apprentissage du langage C , nous devons réaliser un jeu du + ou - !
    Seulement j'ai remarqué que quand on entre une lettre , le programme s'affole (sur mon code mais également sur celui de la correction)
    Y a t-il une solution pour empecher cela ? Merci
    • Partager sur Facebook
    • Partager sur Twitter
      15 janvier 2006 à 8:16:41

      Salut,

      Alors si tu as fait un copier collé du cours de matteo, je ne peu pas t'aider.

      Mais si ta coder ton jeu toi même, ca peut venir surtout d'une chose:

      - Si tu utilise les if a tu mis else pour s'assurer que le programme réagisse a toutes les situations...ainsi si tu as mis un else, quand quelqu'un entrera une lettre le programme dira ce que tu as mis dans else.

      - Si tu as mis des switch n'oublie pas de mettre un cas default...

      Voila, met ton code pour que je vois si ca vient d'autre chose!

      @+ et bon codage
      • Partager sur Facebook
      • Partager sur Twitter
        15 janvier 2006 à 8:53:41

        Il faut attendre les chapitres suivant pour vraiment maitriser la chose.
        • Partager sur Facebook
        • Partager sur Twitter
          15 janvier 2006 à 17:46:39

          Arf , je suis blasé .... apres avoir testé mon code et remarqué le "bug" quand j'entrais une lettre, j'ai copier/coller celui de la correction et j'ai constaté le même "bug"... seulement comme il était tard (environ 5h30 :p) j'ai enregistré le code de la correction par dessus le mien :( je ne peux donc pas vous le montrer .. seulement regardez le code de la correction , testez le et entrez une lettre ! vous remarquerez une boucle infinie !

          #include <stdio.h>
          #include <stdlib.h>
          #include <time.h>

          int main ( int argc, char** argv )
          {
          long nombreMystere = 0, nombreEntre = 0;
          const long MAX = 100, MIN = 1;

          // Génération du nombre aléatoire

          srand(time(NULL));
          nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;

          /* La boucle du programme. Elle se répète tant que l'utilisateur
          n'a pas trouvé le nombre mystère */

          do
          {
          // On demande le nombre
          printf("Quel est le nombre ? ");
          scanf("%ld", &nombreEntre);

          // On compare le nombre entré avec le nombre mystère

          if (nombreMystere > nombreEntre)
          printf("C'est plus !\n\n");
          else if (nombreMystere < nombreEntre)
          printf("C'est moins !\n\n");
          else
          printf ("Bravo, vous avez trouve le nombre mystere !!!\n\n");
          } while (nombreEntre != nombreMystere);

          system("PAUSE");
          }
          • Partager sur Facebook
          • Partager sur Twitter
            15 janvier 2006 à 18:05:23

            Mais on sait roooh, on vient de te le dire que c'est normal que sa bug... écoute un peu...
            • Partager sur Facebook
            • Partager sur Twitter
              15 janvier 2006 à 18:44:56

              Snakif !!!??? Tu m'expliques où c'est écrit dans les 2 réponses : "C'est normal que ca bug" ???
              1 personne me demande si j'ai pas fait d'erreurs et l'autre me dit qu'on verra plus tard pour maitriser la chose ....
              Je ne vois pas ce qui ressemble a un "C'est normal t'inquiete pas pour l'instant!"

              Et soit pas comme ca ... je débute et je m'informe .. merci
              • Partager sur Facebook
              • Partager sur Twitter
                15 janvier 2006 à 19:41:17

                Salut,

                Ca a l'air d'etre du a un oubli de } !

                Tiens un plus ou moins que j'avais fait, ca peut te donner des idées!

                #include <cstdlib>
                #include <iostream>
                #include <stdlib.h>
                #include <stdio.h>
                #include <time.h>


                using namespace std;

                int done; // variable du nombre donner par le joueur
                int chance = 12; //nombre de chance
                int choix1;
                int choix2;
                char* replay = new char[1];

                long MAX = 100 , MIN = 1;

                int start()
                {
                    cout << "Pour gagner vous devez trouver le nombre mystere\n\n";
                    system("title Le nombre mystere");
                    cout << "\n";
                    cout << "Entrer le nombre d'essais pour trouver le nombre mystere : ";
                    cin >> chance;
                    int nombre;
                    //Determination du nombre aléatoire
                        srand(time(NULL));
                    nombre = (rand() % (MAX - MIN + 1)) + MIN;
                    while (done != nombre)
                    {
                    cout << "Il vous reste " << chance << " essai(s)\n\n";
                    cout << "Entrez un nombre: ";
                    cin >> done;
                        //si juste
                        if (done == nombre)
                        {
                           cout << "Bravo vous avez trouver le nombre mystere! \n\a";
                           cout << "Rejouer ? o/n : ";
                           cin >> replay;
                             if (replay = "n")
                             {
                               return EXIT_SUCCESS;         
                             }
                           system("PAUSE");
                        }
                        //si moins
                        if (done > nombre)
                        {
                           cout << "C'est moins! ";
                           chance--;
                         
                           
                        }
                       
                        if (chance == 0)
                        {
                             cout << "Vous avez perdu ! Le nombre etait " << nombre << endl;
                             cout << "Rejouer ? o/n : ";
                             cin >> replay;
                             int replay_ask();
                         
                           
                                   
                        }
                        //si plus
                        if (done < nombre)
                        {               
                           cout << "C'est plus! ";
                           chance--;
                                 
                        }}
                }

                int main(int argc, char *argv[])
                {
                    system("color 2"); //ecriture verte
                   
                   
                    cout << "Le nombre mystere par Uims\n";
                    cout << "==========================\n\n";
                    cout << "Visiter mon site officiel http://uims.fr.st\n";
                    cout << "-------------------------------------------------------------------------------\n\n";
                    start();
                    int replay_ask();
                    return EXIT_SUCCESS;
                }

                int replay_ask()
                {
                             if (replay = "o")
                             {
                               start();
                             }
                             if (replay = "n")
                             {
                               return EXIT_SUCCESS;         
                             }
                }


                Bonne continuation!
                • Partager sur Facebook
                • Partager sur Twitter

                Petite question sur un détail!

                × 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