Posez votre question Signaler

Jeu de pendu

jiyda 1Messages postés 18 juillet 2008Date d'inscription - Dernière réponse le 18 juil. 2008 à 08:05
Salut a tout, :)
j'ai un probleme avec la realisation du jeu de pendu, voila mon code source
Main.c
Code : C
#include <stdio.h>
#include <stdlib.h>
#include "pendule.h"
#include <ctype.h>
int main(int argc, char *argv[])
{
long i, coups=10;
char motSecret[]="MOTSECRET", motCache[]="*********";
char lettreEntree;
printf("Jeu de pendu \n");
while(gagne(motSecret, motCache)!=0 && coups>0)// tant que le joueur n'a pas gagner et qu'il lui reste encore des coups
{
printf("Entrer une lettre:\n");
lettreEntree=lireCaractere(); //on demande au joueur d'entrer une lettre a l'aide de la fonction lireCaractere qui est situee dans pendule.c
for(i=0; motSecret[i] != '\0'; i++)
{
if(lettreEntree==motSecret[i]) // on compare la lettre entree avec les lettre du mot secret
{
motCache[i]=lettreEntree; // si elle est identique a l'une des lettre on la revele
}
}
printf("%s", motCache); //on affiche le mot cache
coups--;
printf("Il vous reste %ld coups.\n ", coups );
}
system("PAUSE");
return 0;
}
pendule.h
Code : C
char lireCaractere();
int gagne (char*, char*);
pendule.c
Code : C
char lireCaractere()
{
char caractere=0;
caractere = getchar();
caractere = toupper(caractere);
while (caractere != '\n' );
return caractere;
}
int gagne(char motSecret[], char motCache[])
{
long i, gagne=0;
char caractere = -1;
for(i=0; caractere != '\0'; i++)
{
caractere = motSecret[i];
if(caractere != motCache[i])
{
gagne++;
}
}
return gagne;
}
Je suis sous Visual C++, le programme s'execute mais des que j'entre une lettre il s'arrete je ne sais pas pourquoi???
Merci d'avance !!
--------------------------------------------------------------------------------
JiYd@
Lire la suite 

Jeu de pendu »

1 réponses
Réponse
+0
moins plus
si tu utilise getchar(), ta boucle while(caractere != '\n' );
est :
1) inutile
2) (ce qui est plus grave) inopérante; en effet, tu lui dit de ne rien faire tant que "caractère" est différent du retour à la ligne. Or, si il ne fait rien "caractère" ne risque pas de changer de valeur ! Une belle boucle infini quoi.
Essai en retirant cette ligne.
Ajouter un commentaire
Ce document intitulé « Jeu de pendu » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook