Langage C

Résolu
Bonjour,
je vais commencer pour mettre mon code :

#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;
	long compteur = 0;
	long continuerPartie = 1;
	long choixPartie;
	long nombreChoisi;
	long modeJoueur = 0;

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

    srand(time(NULL));
	printf("~~~~~~~~~~~~~~Mode Joueurs~~~~~~~~~~~~~\n\n\n\n");
	printf("1- 1 Joueur\n");
	printf("2- 2 Joueurs\n");
	printf("\n\n");
	scanf("%ld", &modeJoueur);
	switch (modeJoueur)
	{
	case 1 :
		printf("Vous avez choisi le mode 1 Joueur.\n");
    nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
	break;
	case 2 :
		printf("Vous avez choisi le mode 2 Joueurs.\n");
		printf("Joueur 1 choisissez un nombre entre 1 et 100\n");
		nombreMystere = scanf("%ld", &nombreChoisi);
		break;
	}
	


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

    do
    {
        // On demande le nombre
        printf("Quel est le nombre ? ");
		compteur++;
        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 en %ld coups !!!\n\n", compteur);
	
		
    } while (nombreEntre != nombreMystere);
	printf("Voulez vous faire une autre partie ?\n");
	printf("1-Oui\n");
	printf("2-Non\n");
	scanf("%ld", &choixPartie);
	switch (choixPartie)
	{
	case 1 :
		printf("Et c'est partie pour une nouvelle partie !!!\n");
		break;
		continuerPartie = 1;
		case 2 :
		printf("Eh bien a une prochaine fois !!!\n");
		continuerPartie = 0;
		break;
	}
	}
    return 0;
}


Alors je vous explique mon problème qui cocnerne le mode 2 joueurs, quand on a choisi le programme demande au joueur 1 d'entrer un nombre que le joueur 2 devra deviné, le problème c'est qu'une fois le nombre entré, le joueur 2 voit le nombre choisi par le joueur 1, comment faire ?

Merci à tous par avance de votre aide.
Configuration: Windows Vista
Firefox 3.0.6

20 réponses

  1. Contributeur
    salut !

    essaye :

    system ("cls");

    c'est le code pour masquer l'ecran en console......... !
    1. Quand j'essai ca il fait un chiffre au hasard par l'ordinateur.
      1. Contributeur
        tu peux faire un printf avec plein de \n qui va masquer l'ecran..; mais c'est bricolé....
        1. Contributeur
          sinon tu peux ecrire le nombre dans un fichier, et le programme va lire ce nombre....

          mais c'est embetant de tout le temps ecrire le nombre dans le fichier...
          1. Contributeur
            non tu fais :

            scanf ("%i", &nombre);
            printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");

            et tu ecris le temps qu'il ne regarde pas...
            1. Ouais mais je suis devant un new probleme, ca m affiche l erreur warning C4244: 'fonction' : conversion de 'time_t' en 'unsigned int', perte possible de données avec ce code
              #include <stdio.h>
              #include <stdlib.h>
              #include <time.h>
              
              
              int main ( int argc, char** argv )
              {
                  long nombreMystere = 0, nombreEntre = 0;
              	long compteur = 0;
              	long continuerPartie = 1;
              	long choixPartie;
              	long nombreChoisi;
              	long modeJoueur = 0;
              	long choixNiveau = 0;
              	long Max = 10000;
              
                  // Génération du nombre aléatoire
              
                
              	printf("~~~~~~~~~~~~~~Mode Joueurs~~~~~~~~~~~~~\n\n\n\n");
              	printf("1- 1 Joueur\n");
              	printf("2- 2 Joueurs\n");
              	printf("\n\n");
              	scanf("%ld", &modeJoueur);
              	switch (modeJoueur)
              	{
              	case 1 :
              		printf("Vous avez choisi le mode 1 Joueur.\n\n");
              		printf("Choisissez votre niveau de difficulté\n\n");
              		pritnf("1- Facile (le nombre sera situé entre 1 et 100)\n\n");
              		printf("2- Moyen (le nombre sera situé entre 1 et 1000)\n\n");
              		printf("3- Difficile (le nombre sera situé entre 1 et 10000)\n\n");
              		scanf("%ld", &choixNiveau);
              		
              		if (choixNiveau == 1 && modeJoueur == 1)
              		{
              			const MAX = 100, MIN = 1;
              			  srand(time(NULL));
              			  nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
              		}
              		else if (choixNiveau == 2 && modeJoueur == 1)
              		{
              			const MAX = 1000, MIN = 1;
              			srand(time(NULL));
              			nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
              		}
              		else (choixNiveau == 3 && modeJoueur == 1)
              		{
              			const MAX = 10000, MIN = 1;
              			srand(time(NULL));
              			nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
              		}
              
              
              
                  
              	break;
              	case 2 :
              		printf("Vous avez choisi le mode 2 Joueurs.\n");
              		printf("Joueur 1 choisissez un nombre entre 1 et 100\n");
              		nombreMystere = scanf("%ld", &nombreChoisi);
              		printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
              		
              		break;
              	}
              	
              
              
                  /* La boucle du programme. Elle se répète tant que l'utilisateur
                  n'a pas trouvé le nombre mystère */
              	while (continuerPartie)
              	{
              
                  do
                  {
                      // On demande le nombre
                      printf("Quel est le nombre ? ");
              		compteur++;
                      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 en %ld coups !!!\n\n", compteur);
              	
              		
                  } while (nombreEntre != nombreMystere);
              	printf("Voulez vous faire une autre partie ?\n");
              	printf("1-Oui\n");
              	printf("2-Non\n");
              	scanf("%ld", &choixPartie);
              	switch (choixPartie)
              	{
              	case 1 :
              		printf("Et c'est partie pour une nouvelle partie !!!\n");
              		break;
              		continuerPartie = 1;
              		case 2 :
              		printf("Eh bien a une prochaine fois !!!\n");
              		continuerPartie = 0;
              		break;
              	}
              	}
                  return 0;
              }


              Pourriez vous m'indiquer mon erreur svp
              1. Contributeur
                alors plusieurs modif a faire...

                tu peux mettre tes variables a la suite :

                long nombre, nombre1, nombre2;

                je crois que c'est char* argv
                et pas char** argv

                apres ou est ton erreur ? ligne ?
                1. Contributeur
                  nombreMystere = scanf("%ld", &nombreChoisi);

                  il vaudrait mieux :

                  scanf("%ld", &nombreChoisi);
                  nombreMystere = nombreChoisi;
                  1. /*
                    
                    Plus ou Moins
                    -------------
                    
                    Réalisé par Dark Raviel
                    
                    
                    Création le : 23/02/2008
                    
                    */
                    
                    
                    #include <stdio.h>
                    #include <stdlib.h>
                    #include <time.h>
                    
                    
                    int main ( int argc, char** argv )
                    {
                        long nombreMystere = 0, nombreEntre = 0;
                    	long compteur = 0;
                    	long continuerPartie = 1;
                    	long choixPartie;
                    	long nombreChoisi;
                    	long modeJoueur = 0;
                    	long choixNiveau = 0;
                    	long Max = 10000, MIN = 1;
                    
                        // Génération du nombre aléatoire
                    
                      
                    	printf("~~~~~~~~~~~~~~Mode Joueurs~~~~~~~~~~~~~\n\n\n\n");
                    	printf("1- 1 Joueur\n");
                    	printf("2- 2 Joueurs\n");
                    	printf("\n\n");
                    	scanf("%ld", &modeJoueur);
                    	switch (modeJoueur)
                    	{
                    	case 1 :
                    		printf("Vous avez choisi le mode 1 Joueur.\n\n");
                    		printf("Choisissez votre niveau de difficulté\n\n");
                    		pritnf("1- Facile (le nombre sera situé entre 1 et 100)\n\n");
                    		printf("2- Moyen (le nombre sera situé entre 1 et 1000)\n\n");
                    		printf("3- Difficile (le nombre sera situé entre 1 et 10000)\n\n");
                    		scanf("%ld", &choixNiveau);
                    		
                    		if (choixNiveau == 1 && modeJoueur == 1)
                    		{
                    			const MAX = 100, MIN = 1;
                    			  srand(time(NULL));
                    			  nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
                    		}
                    		else if (choixNiveau == 2 && modeJoueur == 1)
                    		{
                    			const MAX = 1000, MIN = 1;
                    			srand(time(NULL));
                    			nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
                    		}
                    		else (choixNiveau == 3 && modeJoueur == 1)
                    		{
                    			const MAX = 10000, MIN = 1;
                    			srand(time(NULL));
                    			nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
                    		}
                    
                    
                    
                        
                    	break;
                    	case 2 :
                    		printf("Vous avez choisi le mode 2 Joueurs.\n");
                    		printf("Joueur 1 choisissez un nombre entre 1 et 100\n");
                    		scanf("%ld", &nombreChoisi);
                    		nombreMystere = nombreChoisi;
                    		printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
                    		
                    		break;
                    	}
                    	
                    
                    
                        /* La boucle du programme. Elle se répète tant que l'utilisateur
                        n'a pas trouvé le nombre mystère */
                    	while (continuerPartie)
                    	{
                    
                        do
                        {
                            // On demande le nombre
                            printf("Quel est le nombre ? ");
                    		compteur++;
                            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 en %ld coups !!!\n\n", compteur);
                    	
                    		
                        } while (nombreEntre != nombreMystere);
                    	printf("Voulez vous faire une autre partie ?\n");
                    	printf("1-Oui\n");
                    	printf("2-Non\n");
                    	scanf("%ld", &choixPartie);
                    	switch (choixPartie)
                    	{
                    	case 1 :
                    		printf("Et c'est partie pour une nouvelle partie !!!\n");
                    		break;
                    		continuerPartie = 1;
                    		case 2 :
                    		printf("Eh bien a une prochaine fois !!!\n");
                    		continuerPartie = 0;
                    		break;
                    	}
                    	}
                        return 0;
                    }
                    


                    attends t avais pas tout le code XD la l erreur est ligne 63 mais je la voit pas pour être franc
                    1. Contributeur
                      je n'ai pas trouvé mais il y a une erreur a la fin :

                      break;
                      continuerPartie = 1;
                      case 2 :

                      continuerPartie = 1; doit etre dans une case !
                      1. /*
                        
                        Plus ou Moins
                        -------------
                        
                        Réalisé par Dark Raviel
                        
                        
                        Création le : 23/02/2008
                        
                        */
                        
                        
                        #include <stdio.h>
                        #include <stdlib.h>
                        #include <time.h>
                        
                        
                        int main ( int argc, char** argv )
                        {
                            long nombreMystere = 0, nombreEntre = 0;
                        	long compteur = 0;
                        	long continuerPartie = 1;
                        	long choixPartie;
                        	long nombreChoisi;
                        	long modeJoueur = 0;
                        	long choixNiveau = 0;
                        	long Max = 10000, MIN = 1;
                        
                            // Génération du nombre aléatoire
                        
                          
                        	printf("~~~~~~~~~~~~~~Mode Joueurs~~~~~~~~~~~~~\n\n\n\n");
                        	printf("1- 1 Joueur\n");
                        	printf("2- 2 Joueurs\n");
                        	printf("\n\n");
                        	scanf("%ld", &modeJoueur);
                        	switch (modeJoueur)
                        	{
                        	case 1 :
                        		printf("Vous avez choisi le mode 1 Joueur.\n\n");
                        		printf("Choisissez votre niveau de difficulté\n\n");
                        		pritnf("1- Facile (le nombre sera situé entre 1 et 100)\n\n");
                        		printf("2- Moyen (le nombre sera situé entre 1 et 1000)\n\n");
                        		printf("3- Difficile (le nombre sera situé entre 1 et 10000)\n\n");
                        		scanf("%ld", &choixNiveau);
                        		
                        		if (choixNiveau == 1 && modeJoueur == 1)
                        		{
                        			const MAX = 100, MIN = 1;
                        			  srand(time(NULL));
                        			  nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
                        		}
                        		else if (choixNiveau == 2 && modeJoueur == 1)
                        		{
                        			const MAX = 1000, MIN = 1;
                        			srand(time(NULL));
                        			nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
                        		}
                        		else (choixNiveau == 3 && modeJoueur == 1)
                        		{
                        			const MAX = 10000, MIN = 1;
                        			srand(time(NULL)); // Cette ligne me pose problème !!!
                        			nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
                        		}
                        
                        
                        
                            
                        	break;
                        	case 2 :
                        		printf("Vous avez choisi le mode 2 Joueurs.\n");
                        		printf("Joueur 1 choisissez un nombre entre 1 et 100\n");
                        		scanf("%ld", &nombreChoisi);
                        		nombreMystere = nombreChoisi;
                        		printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
                        		
                        		break;
                        	}
                        	
                        
                        
                            /* La boucle du programme. Elle se répète tant que l'utilisateur
                            n'a pas trouvé le nombre mystère */
                        	while (continuerPartie)
                        	{
                        
                            do
                            {
                                // On demande le nombre
                                printf("Quel est le nombre ? ");
                        		compteur++;
                                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 en %ld coups !!!\n\n", compteur);
                        	
                        		
                            } while (nombreEntre != nombreMystere);
                        	printf("Voulez vous faire une autre partie ?\n");
                        	printf("1-Oui\n");
                        	printf("2-Non\n");
                        	scanf("%ld", &choixPartie);
                        	switch (choixPartie)
                        	{
                        	case 1 :
                        		printf("Et c'est partie pour une nouvelle partie !!!\n");
                        		continuerPartie = 1;
                        		break;
                        		
                        		case 2 :
                        		printf("Eh bien a une prochaine fois !!!\n");
                        		continuerPartie = 0;
                        		break;
                        	}
                        	}
                            return 0;
                        }


                        Voila ^^
                        1. Contributeur
                          deja, ca c'est faux :

                          else (choixNiveau == 3 && modeJoueur == 1)

                          il faut else if !!!

                          ah eh bien tu dois enlever le srand (time(null))

                          on ne doit le mettre que 1 fois par prog !
                          par contre, tu peux mettre ca !

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

                          normalement c bon !
                          1. Contributeur
                            en fait j'ai reflchit, le mieux c'est :

                            ton switch determine la valeur de min et max.

                            apres ton switch, tu fait le srand avec les valeurs qui varient selon le choix du joueur...