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.
A voir également:

20 réponses

HACKER 712 Messages postés 1463 Statut Contributeur 255
 
salut !

essaye :

system ("cls");

c'est le code pour masquer l'ecran en console......... !
0
Dark Raveil Messages postés 49 Statut Membre
 
Quand j'essai ca il fait un chiffre au hasard par l'ordinateur.
0
HACKER 712 Messages postés 1463 Statut Contributeur 255
 
attends que je reflechisse........
0
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

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

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


il vaudrait mieux :

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