tu devrais indenter ton code, cela le rendrait plus lisible.
Tu devrais aussi nous indiquer plus précisement ce que veut dire "mon programme ne marche pas" : -est ce que ça compile, et si non quel est le message du compilateur? -est que le programme compile mais n'affiche rien? -est que le comportement de ton programme n'est pas celui que tu attends? De ce que je vois, si le compteur tombe à 0 ou moins tu affiches un "GameOver" mais tant que le "nombreMystere != nombreEntre" la boucle continuera
- Edité par aureliencabiac 18 février 2020 à 17:22:11
j'ai encore un souci, j'essai d'intégrer un compteur de coups a joué, il fonctionne trés bien mais quand le compteur arrive a 0 il n'affiche pas GameOver je comprend pas pourquoi?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main (int argc, char** argv )
{
//editer mes variable ici//////////////////////////////////////////
int nombreMystere = 0, nombreEntre = 0;
const int MAX = 100, MIN = 0;
int compteur = 10;
/////////////////////////////////////////////////////////////////////
srand(time(NULL));
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
printf("Devine le nombre mystere?\n\n");
printf("Vous avez 10 essais\n");
/////////////////////////////////////////////////////////////////////
if (compteur == 0)
{
printf("\nGameOver\n");
}
//////////////////////////////////////////////////////////////////////
while (nombreMystere != nombreEntre)
{
compteur = compteur-1;
scanf("%d", &nombreEntre);
if (nombreEntre > nombreMystere)
{
printf("\nC'est moins,\nchoisis un nouveaux nombre:\n");
printf("\nCoups restant %d \n", compteur);
}
if (nombreEntre < nombreMystere)
{
printf("\nC'est plus,\nchoisis un nouveaux nombre:");
printf("\nCoups restant %d \n", compteur);
}
}
////////////////////////////////////////////////////////////////////////
printf("\nGG Wp\n");
return 0;
}
Le test du compteur (qui provoque l'affichage de "Game over" s'il est nul) est réalisé une seule fois : avant le début du jeu. C'est comme si tu disais à l'arbitre de venir voir le match avant qu'il ait commencé...
Ce test doit être fait après que 'compteur' a été modifié, donc au moins après la ligne 30.
@edgarjacobs vient de le dire : Tu as oublié les accolades a la ligne 53 :
if (mode == 1) // mode solo
printf("\n*Selectionne ta dificulté:*\n");
printf("\n1.Facile\n");
printf("\n2.Intermediaire\n");
printf("\n3.dificile\n");
scanf("%d", &difficulte);
Avec le code que tu as pour le moment, toutes les instructions vont s'executées comme tu veux mais au moment de gerer le cas où par exemple mode sera 2, alors ce sera un bazar. Mets ton tes accolades stp.
BatteuTV a écrit:
mais voila quand je lance le mode solo en mode facile il me marque direct bravo vous avez trouver alors que j'ai rien cherché encore hmmm
C'est normal. Regarde:
Tu initialise tes deux variables a 0 :
BatteuTV a écrit:
int nombreMystere = 0, nombreEntre = 0;
Dans ta boucle while tu fais nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;mais cela ne sert a rien ici puisque MAX et MIN sont 0 donc nombreMystere reste a 0. A ta ligne 85 tu as :
while (nombreMystere != nombreEntre)
{
compteur = compteur+1;
scanf("%d", &nombreEntre);
if (nombreEntre > nombreMystere)
{
printf("\n**C'est moins,\n**Choisis un nouveaux nombre:\n");
}
if (nombreEntre < nombreMystere)
{
printf("\n**C'est plus,\n**Choisis un nouveaux nombre:\n");
}
}
Cette boucle va pas s'executer au premier tour de ta grande boucle while puisque nombreMystere = nombreEntre = 0.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent