1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
| #include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
char lireCaractere();
void trouverEtRemplacer(char motSecret[], char motTrouver[], char lettre, long nombreCaracteres);
int main(int argc, char *argv[])
{
long nombreCoups = 10;
char motMystere[] = "ROUGE";
long nombreCaracteres = 0;
long i = 0;
char caractereEntre;
char *motDecouvert;
printf("Bienvenue dans le pendu\n\n");
nombreCaracteres = strlen(motMystere);
motDecouvert = (char *) malloc(nombreCaracteres * sizeof(char));
for(i=0;i<nombreCaracteres;i++) motDecouvert[i]='*';
do
{
i = 0;
printf("Il vous reste %ld coups a jouer\n", nombreCoups);
printf("Quel est le mot cache : ");
i=0;
do
{
printf("%c", motDecouvert[i]);
i++;
} while(i != nombreCaracteres);
printf("\n");
printf("Proposez une lettre : ");
caractereEntre = lireCaractere();
trouverEtRemplacer(motMystere, motDecouvert, caractereEntre, nombreCaracteres);
if(strchr(motMystere, caractereEntre) == 0)
{
nombreCoups--;
}
} while(nombreCoups != 0);
if (nombreCoups == 0)
{
printf("Vous avez perdu !!! Le mot mystere etait : %s\n", &motMystere);
}
system("PAUSE");
return 0;
}
char lireCaractere()
{
char caractere = 0;
caractere = getchar(); // On lit le premier caractère
caractere = toupper(caractere); // On met la lettre en majuscule si elle ne l'est pas déjà
// On lit les autres caractères mémorisés un à un jusqu'à l'\n (pour les effacer)
while (getchar() != '\n') ;
return caractere; // On retourne le premier caractère qu'on a lu
}
void trouverEtRemplacer(char motSecret[], char motTrouver[], char lettre, long nombreCaracteres)
{
char caractereActuel;
long i = 0;
do
{
caractereActuel = motSecret[i];
if(caractereActuel == lettre)
{
motTrouver[i] = motSecret[i];
}
i++;;
}while(i!= nombreCaracteres);
} |
Partager