Jeu de pendu
jiyda
Messages postés
1
Statut
Membre
-
Char Snipeur Messages postés 10112 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 10112 Date d'inscription Statut Contributeur Dernière intervention -
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@
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@
A voir également:
- Jeu de pendu
- Jeu du pendu - Télécharger - Vie quotidienne
- 94 degrés jeu - Télécharger - Divers Jeux
- 94 jeu - Télécharger - Puzzle & Réflexion
- Jeu java - Télécharger - Jeux vidéo
- Jeu zuma - Télécharger - Jeux vidéo
1 réponse
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.
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.