diff --git a/pendu.c b/pendu.c index 9b1a816..dbde74c 100644 --- a/pendu.c +++ b/pendu.c @@ -40,6 +40,7 @@ void display_hangman(int tries) { <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD /* this function allow to save the last party @@ -101,11 +102,51 @@ void sig_handler(int signum){ >>>>>>> 83066e1 (ajout des commentaires.) ======= >>>>>>> dev-rocherl +======= +/* +getWordByLength() function adds the possibility to the user to choose how many letters maximum the word to guess can contains. + +Returns: + A random word from the words list that correspond to the user input +*/ +const char* getWordByLength(){ + int maxLetters; + printf("Difficulté - Entrez le nombre de lettres maximum à deviner : "); + scanf(" %d", &maxLetters); + const char *newWords[MAX_WORDS]; + int wordsFound = 0; + for (int i = 0; i < MAX_WORDS; i++) { + if(strlen(words[i]) <= maxLetters){ + newWords[wordsFound] = words[i]; + wordsFound++; + } + } + if(wordsFound==0){ + return ""; + } + const char *word = newWords[rand() % wordsFound]; + /* SECOND WORD TO GUESS (NOT WORKING) + wordsFound = 0; + for (int i = 0; i < MAX_WORDS; i++) { + if(strlen(words[i]) <= maxLetters-strlen(word)){ + newWords[wordsFound] = words[i]; + wordsFound++; + } + } + if(wordsFound != 0){ + word = (const char*) strcat((char *) word, newWords[rand() % wordsFound]); + }*/ + return word; +>>>>>>> dev-schied } int main() { srand(time(NULL)); - const char *word = words[rand() % MAX_WORDS]; + const char *word = getWordByLength(); + if(word==""){ + printf("Aucun mot n'a été trouvé."); + return 1; + } int word_length = strlen(word); char guessed[word_length]; int tries = 0; @@ -162,4 +203,4 @@ int main() { } return 0; -} +} \ No newline at end of file