Partage
  • Partager sur Facebook
  • Partager sur Twitter

Plantage Mode 2 joueurs

Amelioration du TP1

Sujet résolu
    21 décembre 2005 à 22:07:11

    Saaalut tout le monde !!

    Jsuis en train d'ameliorer le TP de M@theo, j'instale un mode 2 joueurs. Le probleme c'est que mon else if... enfin je sais pas qu'est ce qui ce passe mais il veux pas compiler a cause de sa.

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


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

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

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

       //Menu principale

    printf ("Menu:\n\n");
    printf ("Mode 1 joueur, tapez 1\n");
    printf ("Mode 2 joueurs, tapez 2\n");
    printf ("Vous choisissez ");
    scanf ("%ld", &choix1);

    //Partie Solo
             if (choix1 == 1)
    system("cls");
    printf ("Vous avez choisis de jouer seul.\n\n");

    do
    {
          printf ("Quel est le nombre Mystere ?");
          scanf ("%ld", &nombreEntre);
         
          if (nombreEntre < nombreMystere)
          printf ("C'est plus haut !!\n\n");
          else if (nombreEntre > nombreMystere)
          printf ("C'est plus bas !!\n\n");
          else
          printf ("Bravo, vous avez trouve le nombre mystere !!\n\n");
    }while (nombreEntre != nombreMystere);

    //Partie Multi-joueurs

             else if (choix1 == 2) //Ligne qui plante
    system("cls");
    printf ("Vous avez choisis le mode Multi-joueurs\n\n");
    printf ("Joueur 2, tapez un nombre:");
    scanf ("%ld", &nombreJ2);
    system("cls");

    do
    {
           printf ("Joueur 1, trouvez le nombre mystere:")
           scanf ("%ld", nombreEntre);
           
           if (nombreEntre < nombreJ2)
           printf ("C'est plus haut !!");
           else if (nombreEntre > nombreJ2)
           printf ("C'est plus Bas !!");
           else
           printf ("Bravo vous avez trouve le nombre mystere !!");
    }while (nombreEntre != nombreJ2);

        system("PAUSE");
    }


    Si vous pouviez m'aider a rectifier ce probleme sa serait tres simpa :) .

    Aller merci d'avance et saluuuut !
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      21 décembre 2005 à 22:14:23

      Faut que tu mettes entre { } tout ce qui doit être exécuté si choix ==1 et pareil après le else if, sinon, si le premier if est vrai il ne fera qu'un system("cls") puis continuera, et plus tard il trouve un else if sans raisons.

      Ouvres donc un { avant ton premier if que tu refermes après ton while, t'en rouvres un après le 2ème else if refermé après le 2ème while.

      ;)
      • Partager sur Facebook
      • Partager sur Twitter
        21 décembre 2005 à 22:30:32

        Merci beaucoup, mais maintenant sa me donne un nouveau probleme au niveau du scanf ou le joueur 2 choisis un nombre (sa compile toujours pas)

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


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

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

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

           //Menu principale

        printf ("Menu:\n\n");
        printf ("Mode 1 joueur, tapez 1\n");
        printf ("Mode 2 joueurs, tapez 2\n");
        printf ("Vous choisissez ");
        scanf ("%ld", &choix1);

        //Partie Solo
                 if (choix1 == 1)
        {
        system("cls");
        printf ("Vous avez choisis de jouer seul.\n\n");

        do
        {
              printf ("Quel est le nombre Mystere ?");
              scanf ("%ld", &nombreEntre);
             
              if (nombreEntre < nombreMystere)
              printf ("C'est plus haut !!\n\n");
              else if (nombreEntre > nombreMystere)
              printf ("C'est plus bas !!\n\n");
              else
              printf ("Bravo, vous avez trouve le nombre mystere !!\n\n");
        }while (nombreEntre != nombreMystere);
        }

        //Partie Multi-joueurs

                 else if (choix1 == 2)
                 {
        system("cls");

        printf ("Vous avez choisis le mode Multi-joueurs\n\n");
        printf ("Joueur 2, tapez un nombre:");
        scanf ("%ld", &nombreJ2); //la sa plante
        system("cls");

        do
        {
               printf ("Joueur 1, trouvez le nombre mystere:")
               scanf ("%ld", &nombreEntre); //quand j'enleve  le scanf qui plante c'est celui la qui s'y met
               
               if (nombreEntre < nombreJ2)
               printf ("C'est plus haut !!");
               else if (nombreEntre > nombreJ2)
               printf ("C'est plus Bas !!");
               else
               printf ("Bravo vous avez trouve le nombre mystere !!");
        }while (nombreEntre != nombreJ2);
        }

            system("PAUSE");
        }


        J'ai du manquer un chapitre :euh:
        • Partager sur Facebook
        • Partager sur Twitter
          21 décembre 2005 à 22:49:08

          Salut,
          pour le premier scanf : tu declare une variable NombreJ2 et tu demande : nombreJ2
          Le C est sensible au majuscules

          pour le deuxieme tu oublie de fermer ton scanf avec un ; avant
          printf ("Joueur 1, trouvez le nombre mystere:")<souligne><couleur nom="rouge">;</couleur></souligne>


          EDIT : apès tu utilise chaque fois nombreJ2 donc remplace plutôt ta declaration de variable par nombreJ2.

          @+
          • Partager sur Facebook
          • Partager sur Twitter
            21 décembre 2005 à 22:59:02

            Merci de vos aides sa marche super a present :p
            • Partager sur Facebook
            • Partager sur Twitter

            Plantage Mode 2 joueurs

            × 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