#include #include #include #define LIFES 8 // Nombre de vies au debut du jeu // Fonction pour lire une lettre proposee par le joueur char choose_letter() { char letter; printf("Entrez une lettre : "); scanf(" %c", &letter); // Le " " avant %c evite de lire un retour chariot printf("Vous avez choisi la lettre '%c'\n", letter); return letter; } // Fonction pour calculer la taille d'une chaine (similaire a strlen) int word_size(const char *fullWord) { int size = 0; while (fullWord[size] != '\0') { size++; } return size; } // Verifie combien de fois la lettre apparait dans fullWord int letter_occurrence(char letter, const char *fullWord) { int wordsize = wor_size(fullWord); int letterOccurrence = 0; for (int i = 0; i < wordsize; i++) { if (fullWord[i] == letter) { // == pour comparer letterOccurrence++; } } if (letterOccurrence == 0) { printf("La lettre '%c' n'apparait pas dans le mot.\n", letter); } return letterOccurrence; } // Remplace les '_' par la lettre trouvee dans partialWord void position_letter(char letter, const char *fullWord, char *partialWord) { int wordsize = word_size(fullWord); for (int i = 0; i < wordsize; i++) { if (fullWord[i] == letter) { partialWord[i] = letter; } } } // Verifie si le joueur a gagne (si partialWord == fullWord) int has_won(const char *fullWord, const char *partialWord) { return strcmp(fullWord, partialWord) == 0; // 1 si egal, 0 sinon } int main() { char fullWord[] = "ordinateur"; // Le mot a deviner int size = word_size(fullWord); char partialWord[size + 1]; // +1 pour le '\0' // Initialiser partialWord avec des '_' for (int i = 0; i < size; i++) { partialWord[i] = '_'; } partialWord[size] = '\0'; int lifes = LIFES; int won = 0; printf("Bienvenue au jeu du pendu !\n"); printf("Le mot a deviner contient %d lettres.\n", size); while (lifes > 0 && !won) { printf("\nMot actuel : %s\n", partialWord); printf("Vies restantes : %d\n", lifes); char letter = choose_letter(); int occurrence = letter_occurrence(letter, fullWord); if (occurrence > 0) { position_letter(letter, fullWord, partialWord); } else { lifes--; } if (has_won(fullWord, partialWord)) { won = 1; } } if (won) { printf("\n Felicitations ! Vous avez trouve le mot : %s\n", fullWord); } else { printf("\n Vous avez perdu ! Le mot etait : %s\n", fullWord); } return 0; }