diff --git a/pendu.c b/pendu.c index 1b0cfd6..cfa5f3b 100644 --- a/pendu.c +++ b/pendu.c @@ -35,9 +35,44 @@ void display_hangman(int tries) { } } +/*getWordByLength() function*/ +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; +} + 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; @@ -79,4 +114,4 @@ int main() { } return 0; -} +} \ No newline at end of file