int main(int argc, char* argv[]) { char lettre = 0; // Stocke la lettre proposée par l'utilisateur (retour du scanf) char motSecret[] = "MARRON"; // C'est le mot à trouver int lettreTrouvee[6] = {0}; // Un tableau de booléens. Chaque case correspond à une lettre du mot secret. 0 = lettre non trouvée, 1 = lettre trouvée int coupsRestants = 10; // Compteur de coups restants (0 = mort) int i = 0; // Une petite variable pour parcourir les tableaux printf("Bienvenue dans le Pendu !\n\n"); // On continue à jouer tant qu'il reste au moins un coup à jouer ou qu'on // n'a pas gagné while (coupsRestants > 0 && !gagne(lettreTrouvee)) { printf("\n\nIl vous reste %d coups a jouer", coupsRestants); printf("\nQuel est le mot secret ? "); /* On affiche le mot secret en masquant les lettres non trouvées Exemple : *A**ON */ for (i = 0 ; i < 6 ; i++) { if (lettreTrouvee[i]) // Si on a trouvé la lettre n°i printf("%c", motSecret[i]); // On l'affiche else printf("*"); // Sinon, on affiche une étoile pour les lettres non trouvées } printf("\nProposez une lettre : "); lettre = lireCaractere(); // Si ce n'était PAS la bonne lettre if (!rechercheLettre(lettre, motSecret, lettreTrouvee)) { coupsRestants--; // On enlève un coup au joueur } } if (gagne(lettreTrouvee)) printf("\n\nGagne ! Le mot secret etait bien : %s", motSecret); else printf("\n\nPerdu ! Le mot secret etait : %s", motSecret); return 0; }
void hangedGame(char* word) { int i; int* found; int size = strlen(word); found = malloc(size * sizeof(int)); for ( i = 0; i < size; i++) { found[i] = 0; } char character = 0; int loop = 10; while (loop && !checkWin(word, found)) { printf("Il vous reste %d coups a jouer \n", loop); printf("Quel est le mot secret ? "); showWord(word, found); printf("\nProposez une lettre : "); character = lireCaractere(); checkCharacter(word, found, character); loop--; } if(checkWin(word, found)) { printf("\nBravo ! Vous avez gagné en %d coups !", loop); printf("\nLe mot secret était bien '%s'", word); } else { printf("Perdu ! Le mot secret était : %s", word); } free(found); }
int main(int argc, char *argv[]) { FILE *fichierMot = NULL; int nombreMot = 0, positionMot = 0, longeurMot = 0, mot[15]; int motDeviner[15]; int entre = 0, positionCaractere = 0, j = 0, i = 0; int essaiRestant = 10, nombreEssai = 0; fichierMot = fopen("mot", "r"); /* On ouvre le fichier */ if (fichierMot == NULL) { /* On teste pour savoir si tou c'est bien passé */ printf("Le fichier \"mot\" ne peut être ouvert\n"); return 1; } nombreMot = compterMot(fichierMot); /* Compte le nombre de mot */ /* Ceci est uniquement pour le debugage. */ printf("Ceci est le nombre de mot dans le fichier 'mot' %d\n", nombreMot); /* Position du mot dans la liste de tout les mots. */ positionMot = nombreAleatoire(nombreMot); /* Longeur du mot en caractere. */ /* On sort la longeur du mot en même temps */ longeurMot = lireMot(fichierMot, positionMot, mot); /* On affiche ensuite la longeur du sus-choisi mot */ printf("Ceci est la longeur en caractere du mot %d\n", longeurMot); /* Initialisation du tableau */ for (i = 0; i <= longeurMot; i++) { motDeviner[i] = '*'; } /* Démarrage du jeu a proprement parler. */ printf("\nBienvenue dans mon pendu.\n"); printf("Un mot a été choisi, vous avez 10 chances.\n"); printf("Bonne chance !\n"); while (essaiRestant > 0) { /* Boucle principale */ int j = 0, k = 0; /* Afficher le nombre de caractere restant. */ for (j = 0; j < longeurMot; j++) { printf("%c", motDeviner[j]); } /* On affiche le prompt. */ printf("\n> "); entre = lireCaractere(); positionCaractere = comparerCaractere(entre, mot, motDeviner, longeurMot); if (positionCaractere != entre) { essaiRestant--; printf ("Il reste %d essai restant avant une mort certaine...\n", essaiRestant); } /* Donc on compare les deux tableau de "mot" et on incrémente k a chaque caractere valide */ for (j = 0; j < longeurMot; j++) { if (mot[j] == motDeviner[j]) k++; } /* Si k est égual à longeurMot cela veux dire que les deux chaines sont identiques. Donc, victoire! */ if (k == longeurMot) { printf("Vous avez gagner! En %d coups!\n", nombreEssai); fclose(fichierMot); return 0; } nombreEssai++; } fclose(fichierMot); return 0; }