Partage
  • Partager sur Facebook
  • Partager sur Twitter

TP plus ou moins besoin d'aide sur une condition

    18 février 2020 à 17:03:15

    Bonjour

    je ne comprend pas pourquoi mon programme ne fonctionne pas:

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    int main (int argc, char** argv )
    {
    //editer mes variable ici//////////////////////
    
    int nombreMystere = 0, nombreEntre = 0;
    const int MAX = 100, MIN = 0;
    int compteur = 10;
    
    //////////////////////////////////////////////
    
    srand(time(NULL));
    nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
    
    printf("Devine le nombre mystere?");
    
    while (nombreMystere != nombreEntre);
    {
    compteur = compteur-1;
    scanf("%d", &nombreEntre);
    
    if (nombreEntre > nombreMystere)
    {
    printf("\nC'est moins,\nchoisis un nouveaux nombre:\n");
    }
    
    if (nombreEntre < nombreMystere)
    {
    printf("\nC'est plus,\nchoisis un nouveaux nombre:");
    }
    if (compteur <= 0)
    {
    printf("\nGameOver");
    }
    }
    
    printf("\nGG Wp");
    
    return 0;
    }

    merci d'avance pour votre aide

    -
    Edité par Batteu 18 février 2020 à 19:22:26

    • Partager sur Facebook
    • Partager sur Twitter
      18 février 2020 à 17:12:21

      Bonjour,

      tu devrais indenter ton code, cela le rendrait plus lisible.

      Tu devrais aussi nous indiquer plus précisement ce que veut dire "mon programme ne marche pas" :
      -est ce que ça compile, et si non quel est le message du compilateur?
      -est que le programme compile mais n'affiche rien?
      -est que le comportement de ton programme n'est pas celui que tu attends?
      De ce que je vois, si le compteur tombe à 0 ou moins tu affiches un "GameOver" mais tant que le "nombreMystere != nombreEntre" la boucle continuera

      -
      Edité par aureliencabiac 18 février 2020 à 17:22:11

      • Partager sur Facebook
      • Partager sur Twitter
        18 février 2020 à 17:17:33

        retire le point virgule après ton while et ça devrait fonctionner.
        • Partager sur Facebook
        • Partager sur Twitter
          18 février 2020 à 17:23:49

          oui il compile mais n'affiche rien 

          Oups pour le ; que j'ai mis dans un while merci encore <3

          Merci encore quelle débutant je suis :(

          • Partager sur Facebook
          • Partager sur Twitter
            18 février 2020 à 17:34:46

            Apres avoir retire le ; a la ligne 20 rien ne s'affiche toujours ??
            • Partager sur Facebook
            • Partager sur Twitter
              18 février 2020 à 17:41:50

              Si c'est bon erreur de débutant, merci a vous
              • Partager sur Facebook
              • Partager sur Twitter
                18 février 2020 à 18:20:30

                Marque sujet resolu donc stp...
                • Partager sur Facebook
                • Partager sur Twitter
                  18 février 2020 à 18:48:39

                  j'ai encore un souci, j'essai d'intégrer un compteur de coups a joué, il fonctionne trés bien mais quand le compteur arrive a 0 il n'affiche pas GameOver je comprend pas pourquoi?
                  #include <stdio.h>
                  #include <stdlib.h>
                  #include <time.h>
                  
                  int main (int argc, char** argv )
                  {
                  //editer mes variable ici//////////////////////////////////////////
                  
                  int nombreMystere = 0, nombreEntre = 0;
                  const int MAX = 100, MIN = 0;
                  int compteur = 10;
                  
                  /////////////////////////////////////////////////////////////////////
                  
                  srand(time(NULL));
                  nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
                  
                  printf("Devine le nombre mystere?\n\n");
                  printf("Vous avez 10 essais\n");
                  
                  /////////////////////////////////////////////////////////////////////
                  if (compteur == 0)
                  {
                  printf("\nGameOver\n");
                  }
                  //////////////////////////////////////////////////////////////////////
                  
                  while (nombreMystere != nombreEntre)
                  {
                  compteur = compteur-1;
                  scanf("%d", &nombreEntre);
                  
                  if (nombreEntre > nombreMystere)
                  {
                  printf("\nC'est moins,\nchoisis un nouveaux nombre:\n");
                  printf("\nCoups restant %d \n", compteur);
                  }
                  
                  if (nombreEntre < nombreMystere)
                  {
                  printf("\nC'est plus,\nchoisis un nouveaux nombre:");
                  printf("\nCoups restant %d \n", compteur);
                  }
                  }
                  ////////////////////////////////////////////////////////////////////////
                  
                  printf("\nGG Wp\n");
                  
                  return 0;
                  }
                  • Partager sur Facebook
                  • Partager sur Twitter
                    18 février 2020 à 20:20:29

                    Le test du compteur (qui provoque l'affichage de "Game over" s'il est nul) est réalisé une seule fois : avant le début du jeu. C'est comme si tu disais à l'arbitre de venir voir le match avant qu'il ait commencé... ;)

                    Ce test doit être fait après que 'compteur' a été modifié, donc au moins après la ligne 30.

                    • Partager sur Facebook
                    • Partager sur Twitter
                      18 février 2020 à 20:26:41

                      Je reviens vers vous, pour finalisé mon TP

                      je n'arrive pas a faire en sorte que le jeux se relance apres un GameOver

                      pourriez vous m'aidez?

                      1 #include <stdio.h>
                      2 #include <stdlib.h>
                      3 #include <time.h>
                      4
                      5
                      6 int main (int argc, char** argv )
                      7 {
                      8 //editer mes variable ici//////////////////////////////////////////
                      9
                      10 int nombreMystere = 0, nombreEntre = 0;
                      11 int MAX = 0, MIN = 0;
                      12 int compteur = 10;
                      13 int rejouer = 1;
                      14 int difficulte = 0;
                      15
                      16 /////////////////////////////////////////////////////////////////////
                      17
                      18
                      19
                      20
                      21 printf("\n============================\n");
                      22 printf("\nBienvenue dans plus ou moins\n");
                      23 printf("\n============================\n");
                      24
                      25 while (rejouer == 1)
                      26 {
                      27 //choix de la dificulté//
                      28
                      29 printf("\n*Selectionne ta dificulté:*\n");
                      30 printf("\n1.Facile\n");
                      31 printf("\n2.Intermediaire\n");
                      32 printf("\n3.dificile\n");
                      33 scanf("%d", &difficulte);
                      34
                      35 switch (difficulte)
                      36 {
                      37 case 1:
                      38 MAX = 10;
                      39 break;
                      40 case 2:
                      41 MAX = 100;
                      42 break;
                      43 case 3:
                      44 MAX = 1000;
                      45 break;
                      46 default:
                      47 printf("par default\n\n");
                      48 MAX = 10;
                      49
                      50 }
                      51
                      52 printf("\n\nchoisis un nombre entre 0 et %d\n", MAX);
                      53
                      54
                      55
                      56
                      57
                      58 srand(time(NULL));
                      59 nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
                      60 /////////////////////////////////////////////////////////////////////
                      61
                      62 while (nombreMystere != nombreEntre)
                      63 {
                      64 compteur = compteur-1;
                      65 scanf("%d", &nombreEntre);
                      66
                      67
                      68 if (nombreEntre > nombreMystere)
                      69 {
                      70 printf("\nC'est moins,\nchoisis un nouveaux nombre:\n");
                      71 printf("\nCoups restant %d \n", compteur);
                      72 }
                      73
                      74
                      75 if (nombreEntre < nombreMystere)
                      76 {
                      77 printf("\nC'est plus,\nchoisis un nouveaux nombre:\n");
                      78 printf("\nCoups restant %d \n", compteur);
                      79 }
                      80 if (compteur == 0)
                      81 {
                      82 printf("=====GAMEOVER=====");
                      83 }
                      84
                      85
                      86 }
                      87 ////////////////////////////////////////////////////////////////////////
                      88
                      89
                      90
                      91 printf("\n\n====BRAVO Tu as Gagné====\n\n");
                      92 printf("tu veux rejoué?\n-Oui Tape 1\n-Non Tape 0\nAlors? :...");
                      93 scanf("%d", &rejouer);
                      94
                      95 if (rejouer == 1)
                      96 printf("\n\n**C'est reparti**\n\n");
                      97
                      98
                      99 }
                      100
                      101
                      102 return 0;
                      103 }
                       

                      -
                      Edité par Batteu 18 février 2020 à 23:29:03

                      • Partager sur Facebook
                      • Partager sur Twitter
                        19 février 2020 à 11:36:25

                        >je n'arrive pas a faire en sorte que le jeux se relance apres un GameOver

                         Ajoute une nouvlle condition a ton while(ligne 62). Tu auras :
                        while ((nombreMystere != nombreEntre) || compteur != 0)
                        {
                           //...
                        }




                        -
                        Edité par Asmitta 19 février 2020 à 11:37:11

                        • Partager sur Facebook
                        • Partager sur Twitter
                          19 février 2020 à 15:44:53

                          J'ai trouver une solution a ma manière, je voulais savoir si c'était correcte?
                          1 include <stdio.h>
                          2 #include <stdlib.h>
                          3 #include <time.h>
                          4
                          5
                          6 int main (int argc, char** argv )
                          7 {
                          8 //editer mes variable ici//////////////////////////////////////////
                          9
                          10 int nombreMystere = 0, nombreEntre = 0;
                          11 int MAX = 0, MIN = 0;
                          12 int compteur = 10;
                          13 int rejouer = 1;
                          14 int difficulte = 0;
                          15
                          16
                          17
                          18
                          19 ////////////////////////////////////////////////////////////////////
                          20 printf("\n============================\n");
                          21 printf("\nBienvenue dans plus ou moins\n");
                          22 printf("\n============================\n");
                          23
                          24 while (rejouer == 1)
                          25 {
                          26 //choix de la dificulté//
                          27
                          28 printf("\n*Selectionne ta dificulté:*\n");
                          29 printf("\n1.Facile\n");
                          30 printf("\n2.Intermediaire\n");
                          31 printf("\n3.dificile\n");
                          32 scanf("%d", &difficulte);
                          33
                          34 switch (difficulte)
                          35 {
                          36 case 1:
                          37 MAX = 10;
                          38 break;
                          39 case 2:
                          40 MAX = 100;
                          41 break;
                          42 case 3:
                          43 MAX = 1000;
                          44 break;
                          45 default:
                          46 printf("par default\n\n");
                          47 MAX = 10;
                          48
                          49 }
                          50
                          51 printf("\n\n**Choisis un nombre entre 0 et %d\n", MAX);
                          52
                          53
                          54
                          55
                          56
                          57 srand(time(NULL));
                          58 nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
                          59 /////////////////////////////////////////////////////////////////////
                          60
                          61 while ((nombreMystere != nombreEntre) || compteur != 0)
                          62 {
                          63 compteur = compteur-1;
                          64 scanf("%d", &nombreEntre);
                          65
                          66
                          67 if (nombreEntre > nombreMystere)
                          68 {
                          69 printf("\n**C'est moins,\n**Choisis un nouveaux nombre:\n");
                          70 printf("\nCoups restant [%d]\n", compteur);
                          71 }
                          72
                          73
                          74 if (nombreEntre < nombreMystere)
                          75 {
                          76 printf("\n**C'est plus,\n**Choisis un nouveaux nombre:\n");
                          77 printf("\nCoups restant [%d]\n", compteur);
                          78 }
                          79 if (compteur == 0)
                          80 {
                          81 // printf("\n=====GAMEOVER=====\n");
                          82 // printf("tu veux rejoué?\n-Oui Tape 1\n-Non Tape 0\nAlors? :...");
                          83 break;
                          84 //scanf("%d", &rejouer);
                          85 }
                          86 }
                          87 ////////////////////////////////////////////////////////////////////////
                          88 if (compteur == 0)
                          89 {
                          90 printf("\n=====GAMEOVER=====\n");
                          91 printf("tu veux rejoué?\n-Oui Tape 1\n-Non Tape 0\nAlors? :...");
                          92 scanf("%d", &rejouer);
                          93 }
                          94
                          95 printf("\n\n====BRAVO Tu as Gagné====\n\n");
                          96 printf("tu veux rejoué?\n-Oui Tape 1\n-Non Tape 0\nAlors? :...");
                          97 scanf("%d", &rejouer);
                          98
                          99 if (rejouer == 1)
                          100 printf("\n\n**C'est reparti**\n\n");
                          101
                          102
                          103 }
                          104
                          105
                          106 return 0;
                          107 }

                          -
                          Edité par Batteu 19 février 2020 à 15:47:27

                          • Partager sur Facebook
                          • Partager sur Twitter
                            19 février 2020 à 17:13:18

                            Hello,

                            C'est illisible. Indente ton code stp

                            -
                            Edité par edgarjacobs 19 février 2020 à 17:17:16

                            • Partager sur Facebook
                            • Partager sur Twitter

                            On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                              19 février 2020 à 19:41:26

                              Je Vous présente mon Code avec Mode 2 joueur !!, choix de difficulté  et meme un mode Solo ;)

                              j'attend vos correction et surtout si vous avez des conseils je prend !!!

                              2 #include <stdio.h>
                              3 #include <stdlib.h>
                              4 #include <time.h>
                              5
                              6
                              7 int main (int argc, char** argv )
                              8 {
                              9 //editer mes variable ici//////////////////////////////////////////
                              10 int nombrejoueur = 0;
                              11 int nombreMystere = 0, nombreEntre = 0;
                              12 int MAX = 0, MIN = 0;
                              13 int compteur = 0;
                              14 int rejouer = 1;
                              15 int difficulte = 0;
                              16 int mode = 0;
                              17
                              18
                              19          // Menu du jeux
                              20          printf("\n============================\n");
                              21          printf("\nBienvenue dans plus ou moins\n");
                              22          printf("\n============================\n");
                              23
                              24 while (rejouer == 1)
                              25 {
                              26
                              27           //Menu Choix du mode
                              28
                              29           printf("\nMode VS IA\n*Tape 1\nMode PVP\n*Tape 2\n");
                              30           scanf("%d", &mode);
                              31
                              32 switch (mode)
                              33 {
                              34            case 1:
                              35            printf("Vous avez Choisis Vs IA\n\n");
                              36            break;
                              37
                              38            case 2:
                              39            printf("Vous avez choisis PvP\n\n");
                              40            break;
                              41
                              42            default:
                              43            printf("Vous avez choisis le mode par default Vs IA\n\n");
                              44            mode = 1;
                              45
                              46 }
                              47
                              48 if (mode == 1)
                              49 {
                              50            //choix de la dificulté//
                              51
                              52             printf("\n*Selectionne ta dificulté:*\n");
                              53             printf("\n1.Facile\n");
                              54             printf("\n2.Intermediaire\n");
                              55             printf("\n3.dificile\n");
                              56             scanf("%d", &difficulte);
                              57
                              58 switch (difficulte)
                              59 {
                              60            case 1:
                              61                   MAX = 10;
                              62                   break;
                              63            case 2:
                              64                   MAX = 100;
                              65                   break;
                              66            case 3:
                              67                   MAX = 1000;
                              68                   break;
                              69           default:
                              70                  printf("par default\n\n");
                              71                  MAX = 10;
                              72
                              73 }
                              74
                              75            //Initialisation du Nombre Mystere
                              76          srand(time(NULL));
                              77          nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
                              78
                              79
                              80          printf("\n\n**Choisis un nombre entre 0 et %d\n", MAX);
                              81
                              82          // Boucle du Nombre Mystere
                              83
                              84 while (nombreMystere != nombreEntre)
                              85 {
                              86             compteur = compteur+1;
                              87             scanf("%d", &nombreEntre);
                              88
                              89
                              90             if (nombreEntre > nombreMystere)
                              91             {
                              92                printf("\n**C'est moins,\n**Choisis un nouveaux nombre:\n");
                              93             }
                              94
                              95
                              96             if (nombreEntre < nombreMystere)
                              97             {
                              98                printf("\n**C'est plus,\n**Choisis un nouveaux nombre:\n");
                              99             }
                              100
                              101 }
                              102 }
                              103
                              104 if (mode == 2)
                              105 {
                              106             printf("\nJoureur 1 Choisis un Nombre entre 1 et 1000\n\n");
                              107             scanf("%d", &nombrejoueur);
                              108             printf("\nJoueur 2 trouvre le nombre Mystère! entre 1 et 1000\n\n");
                              109
                              110 while (nombrejoueur != nombreEntre)
                              111 {
                              112             compteur = compteur+1;
                              113             scanf("%d", &nombreEntre);
                              114
                              115
                              116             if (nombreEntre > nombrejoueur)
                              117             {
                              118                printf("\n**C'est moins,\n**Choisis un nouveaux nombre:\n");
                              119             }
                              120
                              121
                              122             if (nombreEntre < nombrejoueur)
                              123             {
                              124                printf("\n**C'est plus,\n**Choisis un nouveaux nombre:\n");
                              125             }
                              126
                              127 }
                              128
                              129
                              130
                              131
                              132
                              133
                              134 }
                              135
                              136
                              137                // Message de fin + Restart
                              138          printf("\n\n====BRAVO Tu as Gagné====\n\nEn %d coups\n\n", compteur);
                              139          compteur = 0;
                              140          printf("tu veux rejoué?\n-Oui Tape 1\n-Non Tape 0\nAlors? :...");
                              141          scanf("%d", &rejouer);
                              142
                              

                              -
                              Edité par Batteu 20 février 2020 à 9:20:59

                              • Partager sur Facebook
                              • Partager sur Twitter
                                19 février 2020 à 20:02:49

                                BatteuTV a écrit:

                                Je vous est tout indenté....

                                Ah bon ? Nous n'avons pas la même conception de l'indentation d'un code alors....

                                -
                                Edité par edgarjacobs 19 février 2020 à 20:05:21

                                • Partager sur Facebook
                                • Partager sur Twitter

                                On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                                  19 février 2020 à 20:30:01

                                  Un code non indenté :

                                  while (nombreMystere != nombreEntre)
                                  {
                                  compteur = compteur-1;
                                  scanf("%d", &nombreEntre);
                                  
                                  if (nombreEntre > nombreMystere)
                                  {
                                  printf("\nC'est moins,\nchoisis un nouveaux nombre:\n");
                                  printf("\nCoups restant %d \n", compteur);
                                  }
                                  
                                  if (nombreEntre < nombreMystere)
                                  {
                                  printf("\nC'est plus,\nchoisis un nouveaux nombre:\n");
                                  printf("\nCoups restant %d \n", compteur);
                                  }
                                  
                                  if (compteur == 0)
                                  {
                                  printf("=====GAMEOVER=====");
                                  }
                                  
                                  }

                                  On a du mal à suivre la structure du programme !

                                  Un code indenté :

                                  while (nombreMystere != nombreEntre)
                                  {
                                      compteur = compteur-1;
                                      scanf("%d", &nombreEntre);
                                  
                                      if (nombreEntre > nombreMystere)
                                      {
                                          printf("\nC'est moins,\nchoisis un nouveaux nombre:\n");
                                          printf("\nCoups restant %d \n", compteur);
                                      }
                                  
                                      if (nombreEntre < nombreMystere)
                                      {
                                          printf("\nC'est plus,\nchoisis un nouveaux nombre:\n");
                                          printf("\nCoups restant %d \n", compteur);
                                      }
                                  
                                      if (compteur == 0)
                                      {
                                          printf("=====GAMEOVER=====");
                                      }
                                  
                                  }

                                  Là on peut suivre la structure du programme, comprendre sa logique, voir d'éventuelles erreurs...

                                  -
                                  Edité par robun 19 février 2020 à 20:31:12

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    19 février 2020 à 21:36:30

                                    j'ai mis a jour mon code j'avais pas vue qu'il c'etait inindenté je sais pas si ça se dit ^^

                                    il est bcp plus lisible comme ça ..

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      19 février 2020 à 22:32:14

                                      On dit pas "inindenté", on dit "présenté n'importe comment"
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        19 février 2020 à 23:49:53

                                        Ligne 52 ~ | 53 jusqu'à ???? : tu oublies  de mettre le code entre {  }. Mais comme ton code n'est toujours pas indenté convenablement....

                                        -
                                        Edité par edgarjacobs 19 février 2020 à 23:50:14

                                        • Partager sur Facebook
                                        • Partager sur Twitter

                                        On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                                          20 février 2020 à 1:19:53

                                          @edgarjacobs vient de le dire : Tu as oublié les accolades a la ligne 53 :
                                          if (mode == 1) // mode solo
                                               printf("\n*Selectionne ta dificulté:*\n");
                                               printf("\n1.Facile\n");
                                               printf("\n2.Intermediaire\n");
                                               printf("\n3.dificile\n");
                                               scanf("%d", &difficulte);

                                          Avec le code que tu as pour le moment, toutes les instructions vont s'executées comme tu veux mais au moment de gerer le cas où par exemple mode sera 2, alors ce sera un bazar. Mets ton tes accolades stp.

                                          BatteuTV a écrit:

                                          mais voila quand je lance le mode solo en mode facile il me marque direct bravo vous avez trouver alors que j'ai rien cherché encore hmmm

                                          C'est normal. Regarde:

                                          Tu initialise tes deux variables a 0 :

                                          BatteuTV a écrit:

                                          int nombreMystere = 0, nombreEntre = 0;
                                          

                                          Dans ta boucle while tu fais nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;mais cela ne sert a rien ici puisque MAX et  MIN sont 0 donc nombreMystere reste a 0. A ta ligne 85 tu as :

                                          while (nombreMystere != nombreEntre)
                                          {
                                                      compteur = compteur+1;
                                                      scanf("%d", &nombreEntre);
                                          
                                                     if (nombreEntre > nombreMystere)
                                                     {
                                                         printf("\n**C'est moins,\n**Choisis un nouveaux nombre:\n");
                                                     }
                                          
                                                     if (nombreEntre < nombreMystere)
                                                     {
                                                         printf("\n**C'est plus,\n**Choisis un nouveaux nombre:\n");
                                                     }
                                          
                                          }

                                          Cette boucle va pas s'executer au premier tour de ta grande boucle while puisque nombreMystere = nombreEntre = 0.

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            20 février 2020 à 8:25:06

                                            Merci Beaucoup Asmitta, je commence peut a peut a comprendre la logique :) i now the code !!!!!!!!!!!!!
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              20 février 2020 à 9:50:43

                                              J'espère bien que tu as compris alors...🙃
                                              • Partager sur Facebook
                                              • Partager sur Twitter

                                              TP plus ou moins besoin d'aide sur une condition

                                              × 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