From 818c6db53d83a1abd4a895edad5f924d958f14e8 Mon Sep 17 00:00:00 2001 From: L-em-hash Date: Tue, 15 Oct 2024 11:40:53 +0200 Subject: [PATCH] Ajout limite de temps --- pendu.c | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/pendu.c b/pendu.c index 1b0cfd6..0777769 100644 --- a/pendu.c +++ b/pendu.c @@ -42,6 +42,7 @@ int main() { char guessed[word_length]; int tries = 0; int guessed_correctly = 0; + int score = 100;/*Score initial*/ for (int i = 0; i < word_length; i++) { guessed[i] = '_'; @@ -51,16 +52,30 @@ int main() { while (tries < MAX_TRIES && guessed_correctly < word_length) { printf("\nMot à deviner : %s\n", guessed); display_hangman(tries); + + time_t start_time = time(NULL);/*Demarer le chronomètre*/ char guess; printf("Entrez une lettre : "); scanf(" %c", &guess); + + time_t end_time = timr(NULL); /*terminer le chronomètre*/ + double time_taken = difftime(end_time, start_time); + + /*Vérification du temps écoulé*/ + + if (time_taken > TIME_LIMIT) { + printf("Temps écoulé ! Vous avez mis plus de %d secondes.\n", TIME_LIMIT); + printf("Désolé, vous avez perdu. Le mot était : %s\n", word); + display_hangman(MAX_TRIES); int found = 0; + for (int i = 0; i < word_length; i++) { if (word[i] == guess) { if (guessed[i] == '_') { guessed[i] = guess; guessed_correctly++; + score += 10 /*Bonus de points pour chaque lettre trouvée*/ } found = 1; } @@ -68,11 +83,21 @@ int main() { if (!found) { tries++; + score -= 5; } - } + + printf("Temps écoulé pour cette tentative : %.2f secondes\n", time_taken"); + } + if (guessed_correctly == word_length) { printf("Félicitations ! Vous avez deviné le mot : %s\n", word); + + if (tries < 3) { + score += 20; // Bonus si le mot est deviné en moins de 3 essais + printf("Bravo, vous avez trouvé le mot en moins de 3 essais ! Bonus de points ajouté.\n"); + } + } else { printf("Désolé, vous avez perdu. Le mot était : %s\n", word); display_hangman(MAX_TRIES);