Langage C

Résolu
Dark Raveil Messages postés 49 Statut Membre -  
HACKER 712 Messages postés 1463 Statut Contributeur -
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. HACKER 712 Messages postés 1463 Statut Contributeur 255
     
    salut !

    essaye :

    system ("cls");

    c'est le code pour masquer l'ecran en console......... !
    0
  2. Dark Raveil Messages postés 49 Statut Membre
     
    Quand j'essai ca il fait un chiffre au hasard par l'ordinateur.
    0
  3. HACKER 712 Messages postés 1463 Statut Contributeur 255
     
    attends que je reflechisse........
    0
  4. HACKER 712 Messages postés 1463 Statut Contributeur 255
     
    tu peux faire un printf avec plein de \n qui va masquer l'ecran..; mais c'est bricolé....
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Dark Raveil Messages postés 49 Statut Membre
     
    Je dois donc rajouter un if et un else ?
    0
  7. HACKER 712 Messages postés 1463 Statut Contributeur 255
     
    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...
    0
  8. HACKER 712 Messages postés 1463 Statut Contributeur 255
     
    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...
    0
  9. Dark Raveil Messages postés 49 Statut Membre
     
    Merci infiniment pour ton aide.
    0
  10. HACKER 712 Messages postés 1463 Statut Contributeur 255
     
    alors ca te va ce bricolage ??
    0
  11. Dark Raveil Messages postés 49 Statut Membre
     
    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
    0
  12. HACKER 712 Messages postés 1463 Statut Contributeur 255
     
    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 ?
    0
  13. Dark Raveil Messages postés 49 Statut Membre
     
    Non c est bel et bien char**

    Apparement ligne 63
    0
  14. HACKER 712 Messages postés 1463 Statut Contributeur 255
     
    nombreMystere = scanf("%ld", &nombreChoisi);

    il vaudrait mieux :

    scanf("%ld", &nombreChoisi);
    nombreMystere = nombreChoisi;
    0
  15. Dark Raveil Messages postés 49 Statut Membre
     
    /*
    
    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
    0
  16. HACKER 712 Messages postés 1463 Statut Contributeur 255
     
    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 !
    0
  17. Dark Raveil Messages postés 49 Statut Membre
     
    Ah oui c'est exact mais j ai tjs le probleme de la ligne 63
    0
  18. HACKER 712 Messages postés 1463 Statut Contributeur 255
     
    tu peux indiquer par un com cette ligne ?
    0
  19. Dark Raveil Messages postés 49 Statut Membre
     
    /*
    
    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 ^^
    0
  20. HACKER 712 Messages postés 1463 Statut Contributeur 255
     
    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 !
    0
  21. HACKER 712 Messages postés 1463 Statut Contributeur 255
     
    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...
    0