A voir également:
- Mini jeu en "c" (probleme)
- 94 jeu - Télécharger - Puzzle & Réflexion
- Opera mini pc - Télécharger - Navigateurs
- Meilleur mini pc - Accueil - Guide ordinateurs
- Geekom mini it11 - Accueil - Guide ordinateurs
- Jeu zuma - Télécharger - Jeux vidéo
2 réponses
maxwells
Messages postés
25
Date d'inscription
lundi 3 janvier 2005
Statut
Membre
Dernière intervention
24 juin 2008
1
6 sept. 2007 à 08:40
6 sept. 2007 à 08:40
Salut à toi RainMaker,
Le problème que tu as est simple.
Tu as créé une boucle pour chaque niveau (While compteur <= 20)
et lorsque le joueur trouve le nombre, la variable compteur remplie forcément la condition de la boucle. il faut donc que tu donne une valeur supérieur à 20 (moi j'ai mis 999 mais 21 suffit) à ta variable compteur après avoir affiché le message de fin de partie(partie gagnée).
Puis, lorsque tu réaffiche le message de sélection de niveau après que le joueur ai accepter de rejouer, il faut réinitialiser la variable compteur à 0.
Voilà ton code modifié et corrigé :
Voilà c'est un bug qui n'est pas forcément visible dès le premier coup d'oeil
Voilà j'espère que mes explications sont claires.
@+
Le problème que tu as est simple.
Tu as créé une boucle pour chaque niveau (While compteur <= 20)
et lorsque le joueur trouve le nombre, la variable compteur remplie forcément la condition de la boucle. il faut donc que tu donne une valeur supérieur à 20 (moi j'ai mis 999 mais 21 suffit) à ta variable compteur après avoir affiché le message de fin de partie(partie gagnée).
Puis, lorsque tu réaffiche le message de sélection de niveau après que le joueur ai accepter de rejouer, il faut réinitialiser la variable compteur à 0.
Voilà ton code modifié et corrigé :
#include <stdio.h> #include <stdlib.h> #include <time.h> int main(int argc, char *argv[]) { long nombreMystere = 0, nombreEntre = 0, coup = 0, menu = 0, choix = 0, compteur = 0, boucle = 0; const long MAX = 100, MIN = 1; printf("\t\t==============================================\n\t\t==== Bienvenu au jeu du ''Plus ou moins'' ====\n\t\t==============================================\n\n"); printf("\t\t\t\t-------------------\n\t\t\t\t--- Instruction ---\n\t\t\t\t-------------------\n\n\n\nLe but de ce jeu est de trouver le chiffre entre 1 et 100 qui a ete aleatoirement choisi par l'ordinateur."); while (boucle = 1) { srand(time(NULL)); nombreMystere = (rand() % (MAX - MIN + 1)) + MIN; printf("\n\nNiveau : \n\n1. Facile : Trouvez le chiffre mystere en 20 coup maximum\n\n2. Moyen : Trouvez le chiffre mystere en 15 coup maximum\n\n3. Difficile : Trouvez le chiffre mystere en 10 coup maximum \n\n Quelle niveau desirez-vous ? "); scanf("%ld", &menu); switch (menu) { case 1 : while (compteur <= 20) { compteur++; printf("\nQuelle est le chiffre mystere ? "); scanf("%ld", &nombreEntre); if (nombreEntre < nombreMystere) { printf("\n\t ***Et non ces plus***\n"); } else if (nombreEntre > nombreMystere) { printf("\n\t ***Et non ces moin***\n"); } else { printf("\n________________________________________________________________________________\n"); printf("\n\n\t**** Woaw bien joue, le nombre mystere etait %ld ****", nombreEntre); printf("\n\n\t\t**** Tu as reussi en %ld essais ****", compteur); compteur =999; break; } } case 2 : while (compteur <= 15) { compteur++; printf("\nQuelle est le chiffre mystere ? "); scanf("%ld", &nombreEntre); if (nombreEntre < nombreMystere) { printf("\n\t ***Et non ces plus***\n"); } else if (nombreEntre > nombreMystere) { printf("\n\t ***Et non ces moin***\n"); } else { printf("\n________________________________________________________________________________\n"); printf("\n\n\t**** Woaw bien joue, le nombre mystere etait %ld ****", nombreEntre); printf("\n\n\t\t**** Tu as reussi en %ld essais ****", compteur); compteur=999; break; } } case 3 : while (compteur <= 10) { compteur++; printf("\nQuelle est le chiffre mystere ? "); scanf("%ld", &nombreEntre); if (nombreEntre < nombreMystere) { printf("\n\t ***Et non ces plus***\n"); } else if (nombreEntre > nombreMystere) { printf("\n\t ***Et non ces moin***\n"); } else { printf("\n________________________________________________________________________________\n"); printf("\n\n\t**** Woaw bien joue, le nombre mystere etait %ld ****", nombreEntre); printf("\n\n\t\t**** Tu as reussi en %ld essais ****", compteur); compteur=999; break; } } printf("\n\ndesirez-vous faire une nouvelle partie ? ?\n\n1. Oui\n2. Non\n\nVotre choix : "); scanf("%ld", &boucle); if (boucle == 1) { compteur=0; printf("\n\nQuelle niveau desirez-vous ? "); printf("\n\n"); } if (boucle != 1) { printf("\n\n Merci d'avoir joue avec moi, a plus tard pour d'autre test"); printf("\n\n=== by rainmaker ==="); printf("\n\n"); system("PAUSE"); return 0; } } } system("PAUSE"); return 0; }
Voilà c'est un bug qui n'est pas forcément visible dès le premier coup d'oeil
Voilà j'espère que mes explications sont claires.
@+