Salut à tous,
j'ai codé en C un petit jeu (du plus ou moins) en console,avec une proposition de recommencer le jeu une fois une partie finie et avec choix de niveaux. Le problème est que j'ai une boucle infinie, et je n'arrive pas à trouver à cause de quoi :s ....
cette boucle commence après avoir entré une première proposition pour le nombre mystère
(je l'ai deja fait en plusieurs fonctions, mais je voulais tester de le faire seulement dans la fonction main pour des raisons trop compliquées à vous expliquer)
Voici le code source (en C) :
- include <stdio.h>
- include <stdlib.h>
// realisation du jeu plus ou moins uniquement dans la fonction main
int main()
{
// Initialisation des Variables et constantes
int nombreEntre = 0;
int nombreMystere = 0;
int compteur = 0;
int niveau = 0;
int max = 3;
int continuerPartie = 1;
const int MIN = 1;
// Fin de l'initialisation des Variables et constantes
// Menu principal
do
{
printf("\n==== JEU DU PLUS OU MOINS ====");
printf("\n============ MENU ============\n\n");
printf(" 1. Commencer une nouvelle partie\n");
printf(" 0. Quitter le jeu\n\n");
printf("Que voulez-vous faire ? : \n");
scanf("%d", &continuerPartie);
// Choix des niveaux
printf("\n ~~~~ MENU : SELECTION DE NIVEAU ~~~~\n\n");
printf(" 1. Le nombre mystere se trouve entre 1 et 10\n");
printf(" 2. Le nombre mystere se trouve entre 1 et 100\n");
printf(" 3. Le nombre mystere se trouve entre 1 et 1000\n");
printf("\nQuel est votre choix : ");
scanf("%d", &niveau);
switch(niveau)
{
case 1:
max = 10;
break;
case 2:
max = 100;
break;
case 3:
max = 1000;
break;
default:
printf("\nTu as voulu faire planter mon programme ...");
printf("\nPunition : le nombre mystere se trouve entre 1 et 1.000.000 ^^");
printf("\nBonne Merde ...");
max = 1000000;
break;
}
srand(time(NULL));
max = (rand() % (max - MIN + 1)) + MIN;
// Jeu même
printf("Quel est le nombre ? : ");
scanf("%d", &nombreEntre);
do
{
compteur++;
if (nombreMystere > nombreEntre)
printf("\nC'est plus !\n");
else if (nombreMystere < nombreEntre)
printf("\nC'est moins !\n");
else
{
if (compteur == 1)
printf("\nINCROYABLE, vous avez trouve le nombre mystere en 1 seul coup ! It is UNBELIEVABLE\n\n");
else
printf("\nBravo, vous avez trouve le nombre mystere en %d fois\n", compteur);
}
} while(nombreMystere != nombreEntre);
} while (continuerPartie == 1);
system("PAUSE");
return 0;
}
Si quelqu'un pouvait m'aider, ca serait sympa de sa part
d'avance