diff --git a/src_karamosr/karamosr.c b/src_karamosr/karamosr.c new file mode 100644 index 0000000..449fc6e --- /dev/null +++ b/src_karamosr/karamosr.c @@ -0,0 +1,104 @@ +#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 = wordSize(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 = wordSize(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 = wordSize(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 = chooseLetter(); + + 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; +} +*/ \ No newline at end of file