commit 9ff26406cac484994353d4160b10a0791d3f01ba Author: Maxime Menault Date: Mon Oct 14 18:41:58 2024 +0200 First commit - Pendu diff --git a/pendu.c b/pendu.c new file mode 100644 index 0000000..3e574e7 --- /dev/null +++ b/pendu.c @@ -0,0 +1,73 @@ +#include +#include +#include +#include + +#define MAX_WORDS 5 +#define MAX_TRIES 6 + +const char *words[MAX_WORDS] = { + "programmation", + "ordinateur", + "langage", + "jeu", + "algorithmique" +}; + +void display_hangman(int tries) { + switch (tries) { + case 0: printf(" ----\n | |\n |\n |\n |\n |\n--------\n"); break; + case 1: printf(" ----\n | |\n | O\n |\n |\n |\n--------\n"); break; + case 2: printf(" ----\n | |\n | O\n | |\n |\n |\n--------\n"); break; + case 3: printf(" ----\n | |\n | O\n | /|\n |\n |\n--------\n"); break; + case 4: printf(" ----\n | |\n | O\n | /|\\\n |\n |\n--------\n"); break; + case 5: printf(" ----\n | |\n | O\n | /|\\\n | /\n |\n--------\n"); break; + case 6: printf(" ----\n | |\n | O\n | /|\\\n | / \\\n |\n--------\n"); break; + } +} + +int main() { + srand(time(NULL)); + const char *word = words[rand() % MAX_WORDS]; + int word_length = strlen(word); + char guessed[word_length]; + int tries = 0; + int guessed_correctly = 0; + + for (int i = 0; i < word_length; i++) { + guessed[i] = '_'; + } + guessed[word_length] = '\0'; + + while (tries < MAX_TRIES && guessed_correctly < word_length) { + printf("\nMot à deviner : %s\n", guessed); + display_hangman(tries); + char guess; + printf("Entrez une lettre : "); + scanf(" %c", &guess); + int found = 0; + + for (int i = 0; i < word_length; i++) { + if (word[i] == guess) { + if (guessed[i] == '_') { + guessed[i] = guess; + guessed_correctly++; + } + found = 1; + } + } + + if (!found) { + tries++; + } + } + + if (guessed_correctly == word_length) { + printf("Félicitations ! Vous avez deviné le mot : %s\n", word); + } else { + printf("Désolé, vous avez perdu. Le mot était : %s\n", word); + display_hangman(MAX_TRIES); + } + + return 0; +}