Langage C: problème de codage

Bonjour, voilà je dois créer un mini jeu basique avec un mode multijoueur, compteur de coups...
C'est le jeu du plus ou moins. Le problème est que je bloque depuis que le mode multijoueur est implanté pour mettre en place la fonction recommencer une partie ou non. je vous place mon code car je suis coincé.

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

int main( int argc, char** argv )
{
int nombremystere = 0, nombreentre = 0, compteurdecoups = 0, recommencer = 1, nombrejoueur = 0;// Les variables

const int MAX = 100, MIN = 1;// Constante

srand(time(NULL));

printf("Choisissez un mode de jeu.\n");
printf("1.Solo\n");
printf("2.Multijoueur\n");
printf("3.Quitter le jeu\n");
scanf("%d", &nombrejoueur);

switch(nombrejoueur)
{

case 1:
{while (recommencer==1)
nombremystere = (rand () % (MAX - MIN + 1)) + MIN;
printf("Quel est le nombre?\n");
scanf("%d", &nombreentre);
compteurdecoups++;
if(nombreentre < nombremystere)
printf("C'est plus!\n");
else if(nombreentre > nombremystere)
printf("C'est moins!\n");
else
printf("Bravo tu as trouvé le chiffre mystere en %d coups\n",compteurdecoups);
printf("Voulez vous rejouer??\n");
printf("1.Oui, 2.Non\n");
scanf("%d", &recommencer);
if (recommencer==1)
printf("C'est repartis\n");
else
return 0;
}
case 2:
nombremystere = scanf("%d");
printf("Quel est le nombre?\n");
scanf("%d");
system("cls");
compteurdecoups++;
if(nombreentre < nombremystere)
printf("C'est plus!\n");
else if(nombreentre > nombremystere)
printf("C'est moins!\n");
else
printf("Bravo tu as trouvé le nombre caché de ton adversaire en %d coups\n",compteurdecoups);
break;
default :
return 0;
break;

}
}

--
Al Capone est mort de la syphilis, ben faut bien mourir de quelques choses.
Configuration: Windows XP
Firefox 3.0.14

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. pk tu poses la question ici alors que tu as la réponse sur le site où on te fait faire ce TP ?
    1. Contributeur
      faut dire, tu n'a rien fait alors c'est normal que ça ne boucle pas.
      1. essaye ceci :

        #include <stdio.h> 
        #include <stdlib.h> 
        #include <time.h> 
        
        int main( int argc, char** argv ) 
        { 
        int nombremystere = 0, nombreentre = 0, compteurdecoups = 0, nombrejoueur = 0;// Les variables 
        int  recommencer = 1;
        
        const int MAX = 100, MIN = 1;// Constante 
        
        srand(time(NULL)); 
        while (recommencer==1) 
        {
        printf("Choisissez un mode de jeu.\n"); 
        printf("1.Solo\n"); 
        printf("2.Multijoueur\n"); 
        printf("3.Quitter le jeu\n"); 
        scanf("%d", &nombrejoueur); 
        switch(nombrejoueur) 
        { 
        
            case 1: 
            {
        
                       nombremystere = (rand () % (MAX - MIN + 1)) + MIN;
                       do
                       { 
                             printf("Quel est le nombre?\n"); 
                             scanf("%d", &nombreentre); 
                             compteurdecoups++; 
                             if(nombreentre < nombremystere)
                             {
                                   printf("C'est plus!\n"); 
                             }
                             else if(nombreentre > nombremystere)
                             { 
                             printf("C'est moins!\n"); 
                             }
                            else 
                            printf("Bravo tu as trouvé le chiffre mystere en %d coups\n",compteurdecoups);
                       }while(nombreentre != nombremystere); 
                 break;
            }
            case 2: 
            {
                 scanf("%d",&nombremystere); 
                 system("cls");
                 printf("Quel est le nombre?\n");
                 do
                 { 
                     scanf("%d",&nombreentre);  
                     compteurdecoups++; 
                     if(nombreentre < nombremystere) 
                     printf("C'est plus!\n"); 
                     else if(nombreentre > nombremystere) 
                     printf("C'est moins!\n"); 
                     else 
                     printf("Bravo tu as trouvé le nombre caché de ton adversaire en %d coups\n",compteurdecoups);
                 }while(nombreentre != nombremystere); 
                 break; 
            }
        }                     
        printf("Voulez vous rejouer??\n"); 
        printf("1.Oui, 2.Non\n"); 
        scanf("%d", &recommencer); 
        if (recommencer==1) printf("C'est repartis\n");  
        }
        return 0; 
        
        
        } 
         
        
        
        1. Contributeur
          du coup tu oublie la réponse "3" pour quitter le code.
          1. ah oui !! :p
            il suffit d'ajouter

            case 3 : return 0;

            merci pour la remarque ! ;)