PDA

Voir la version complète : Comment refaire une partie ?


Quentin
12/08/2007, 14h59
Bonjour à tous,
Je débute dans la programmation en C.

J'apprend les bases tout seul.
Voila j'ai un problème.
Mon but est de faire une sorte de plus ou moins sur PC.

Ce que j'aimerais rajouter à mon code c'est de demandé à la fin de la partie si nous voulons refaires une partie.
Si on entre 1 par exemple le programme recommence
Sinon il se ferme.
(Car pour le moment une fois que l'on à trouver le nombre Mystere le programme s'arrête.
J'ai tenté de rajouter une variable booléenne "continuerPartie" initialisée à 1 au départ. Mais mon programme bloque.

Voici mon code (Sans le fameux "Refaire une partie ?")


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


int main ( int argc, char** argv )
{
long nombreMystere = 0, nombreEntre = 0;
// nombreMystere --> nombre à trouver
// nombreEntre --> nombre que l'on entre ^^
long compteur = 0;
const long MAX = 100, MIN = 1;
// Génération du nombre aléatoire
srand(time(NULL));
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;

//La boucle du programme. Elle se répète tant que l'utilisateur n'a pas trouvé le nombre mystère
do
{
// On demande le nombre
printf("Quel est le nombre ? ");
scanf("%ld", &nombreEntre);
// On compare le nombre entré avec le nombre mystère

if (nombreMystere > nombreEntre)
{
printf("C'est plus !\n\n");
compteur++;
}

else if (nombreMystere < nombreEntre)
{
printf("C'est moins !\n\n");
compteur++;
}

else
//Le nombre est trouvé
printf("Bravo, vous avez trouve le nombre mystere en %ld coups !!!\n\n", compteur);
}
while (nombreEntre != nombreMystere);
system("PAUSE");
}


Merci pour votre aide.

Quentin

yaouank
12/08/2007, 15h15
Essaye plutot quelque chose comme ca (en séparant le cas "gagné" du cas "perdu car trop grand ou trop petit").

J'ai essayé de modifier ton code le moins possible.

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


int main ( int argc, char** argv )
{
long nombreMystere = 0, nombreEntre = 0;
// nombreMystere --> nombre à trouver
// nombreEntre --> nombre que l'on entre ^^
long compteur = 0;
const long MAX = 100, MIN = 1;
// Génération du nombre aléatoire
srand(time(NULL));
do{

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

//La boucle du programme. Elle se répète tant que l'utilisateur n'a pas trouvé le nombre mystère
do
{
// On demande le nombre
printf("Quel est le nombre ? ");
scanf("%ld", &nombreEntre);
// On compare le nombre entré avec le nombre mystère

if (nombreMystere > nombreEntre)
{
printf("C'est plus !\n\n");
compteur++;
}
else if (nombreMystere < nombreEntre)
{
printf("C'est moins !\n\n");
compteur++;
}
}while (nombreEntre != nombreMystere);
//Le nombre est trouvé
printf("Bravo, vous avez trouve le nombre mystere en %ld coups !!!\n\n", compteur);
printf("On continue ? (1 pour continuer)");
scanf("%ld", &nombreEntre);
}while (nombreEntre != 1);
system("PAUSE");
}

Quentin
12/08/2007, 15h28
Merci !!