Langage C
Résolu
Dark Raveil
Messages postés
49
Statut
Membre
-
HACKER 712 Messages postés 1463 Statut Contributeur -
HACKER 712 Messages postés 1463 Statut Contributeur -
Bonjour,
je vais commencer pour mettre mon code :
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.
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
-
salut !
essaye :
system ("cls");
c'est le code pour masquer l'ecran en console......... ! -
Quand j'essai ca il fait un chiffre au hasard par l'ordinateur.
-
-
tu peux faire un printf avec plein de \n qui va masquer l'ecran..; mais c'est bricolé....
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
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... -
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... -
-
-
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 -
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 ? -
-
nombreMystere = scanf("%ld", &nombreChoisi);
il vaudrait mieux :
scanf("%ld", &nombreChoisi);
nombreMystere = nombreChoisi; -
/* 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 -
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 ! -
Ah oui c'est exact mais j ai tjs le probleme de la ligne 63
-
-
/* 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 ^^ -
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 ! -
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...