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 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
|
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <time.h>
#define MAX_SIZE 4096
int randint(int min, int max)
{
int rand_is_seeded = 0;
if(!rand_is_seeded)
{
rand_is_seeded = 1;
}
return rand()%(max-min+1) + min;
}
char* generation_mot_actuel(const char mot_secret[], int taille_chaine)
{
int i;
char *motActuel;
for(i = 0 ; i<taille_chaine ; i++)
motActuel[i]='*';
return motActuel;
}
char* generation_mot_secret(FILE* const fichier)
{
//FILE* fichier = fopen("test", "r");
char *motSecret;
int nb_mots;
char word[100][MAX_SIZE + 1];
int n = 0;
srand((unsigned int) time(NULL));
if(fichier != NULL)
{
for(nb_mots = 0 ; nb_mots < 100 ; nb_mots++)
if(fgets(word[nb_mots], MAX_SIZE, fichier) == NULL)
break;
fclose(fichier);
n = randint(0, nb_mots - 1);
const char *const motSecret = word[n];
printf("mot secret : %s \n", motSecret);
return (char *)motSecret;
}
}
int rechercheLettre(char lettre, const char motSecret[] )
{
long i = 0;
int lettreTrouvee= 0;
for(i = 0 ; motSecret[i] != '\0' ; i++)
{
if(lettre == motSecret[i])
lettreTrouvee = 1;
}
return lettreTrouvee;
}
char lireCaractere()
{
char caractere=0;
caractere = getchar();
caractere = toupper(caractere);
while(getchar() != '\n');
return caractere;
}
int main()
{
int NB_COUP_MAX = 10;
char const *motSecret;
char *motActuel;;
char maLettre = 0;
int lettreTrouvee; // booléen FAUX
int j = 0;
FILE* fichier = NULL;
fichier = fopen("test", "r");
printf("Bienvenue sur le jeu du pendu ! \n ");
motSecret = generation_mot_secret(fichier);
printf("mot secret : %s \n", motSecret);
int longueur = strlen(motSecret);
motActuel = generation_mot_actuel(motSecret, longueur);
printf("mot actuel : %s \n", motActuel);
while(strcmp(motSecret, motActuel) != 0 && NB_COUP_MAX > 0)
{
printf("Voici le mot actuel: %s, il vous reste %d \n", motActuel, NB_COUP_MAX);
printf("Saisir une lettre: ");
maLettre=lireCaractere();
for(j=0 ; j<longueur ; j++)
{
if(motSecret[j] == maLettre)
{
motActuel[j] = maLettre;
// pour chaque lettre, si la lettre est égale à la lettre saisie, VRAI
}
}
if(!rechercheLettre(maLettre, motSecret))
NB_COUP_MAX--;
}
if(strcmp(motSecret, motActuel) == 0)
printf("Félicitation vous avez trouvé le bon mot: %s ! \n", motSecret);
else
printf("Vous avez perdu, le nombre de tentatives a été atteint ! \n");
return 0;
} |
Partager