ajout du cooldown sur le scanf

This commit is contained in:
Leo ROCHER 2024-10-15 11:32:43 +02:00
parent 2361771f21
commit b4f25a50b0
3 changed files with 17 additions and 0 deletions

5
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,5 @@
{
"files.associations": {
"unistd.h": "c"
}
}

BIN
pendu Executable file

Binary file not shown.

12
pendu.c
View File

@ -1,7 +1,9 @@
#include <signal.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <time.h> #include <time.h>
#include <unistd.h>
#define MAX_WORDS 14 #define MAX_WORDS 14
#define MAX_TRIES 6 #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() { int main() {
srand(time(NULL)); srand(time(NULL));
const char *word = words[rand() % MAX_WORDS]; const char *word = words[rand() % MAX_WORDS];
@ -43,16 +50,21 @@ int main() {
int tries = 0; int tries = 0;
int guessed_correctly = 0; int guessed_correctly = 0;
signal(SIGALRM,sig_handler);
for (int i = 0; i < word_length; i++) { for (int i = 0; i < word_length; i++) {
guessed[i] = '_'; guessed[i] = '_';
} }
guessed[word_length] = '\0'; guessed[word_length] = '\0';
while (tries < MAX_TRIES && guessed_correctly < word_length) { while (tries < MAX_TRIES && guessed_correctly < word_length) {
printf("\nMot à deviner : %s\n", guessed); printf("\nMot à deviner : %s\n", guessed);
display_hangman(tries); display_hangman(tries);
char guess; char guess;
alarm(30);
printf("Entrez une lettre : "); printf("Entrez une lettre : ");
alarm(30);
scanf(" %c", &guess); scanf(" %c", &guess);
int found = 0; int found = 0;