diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..1992e5c --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.associations": { + "unistd.h": "c" + } +} \ No newline at end of file diff --git a/pendu b/pendu new file mode 100755 index 0000000..e9aae90 Binary files /dev/null and b/pendu differ diff --git a/pendu.c b/pendu.c index 1b0cfd6..1231cbb 100644 --- a/pendu.c +++ b/pendu.c @@ -1,7 +1,9 @@ +#include #include #include #include #include +#include #define MAX_WORDS 14 #define MAX_TRIES 6 @@ -35,6 +37,11 @@ void display_hangman(int tries) { } } +void sig_handler(int signum){ + printf("\ntime out\n"); + exit (1); +} + int main() { srand(time(NULL)); const char *word = words[rand() % MAX_WORDS]; @@ -43,16 +50,21 @@ int main() { int tries = 0; int guessed_correctly = 0; + signal(SIGALRM,sig_handler); + 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; + alarm(30); printf("Entrez une lettre : "); + alarm(30); scanf(" %c", &guess); int found = 0;