2 Commits

Author SHA1 Message Date
509db16917 Added comments 2024-10-15 11:59:29 +02:00
2fd6561591 Added difficulty 2024-10-15 11:32:49 +02:00
2 changed files with 0 additions and 84 deletions

78
pendu.c
View File

@@ -1,9 +1,7 @@
#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
@@ -37,64 +35,6 @@ void display_hangman(int tries) {
} }
} }
/*
this function allow to save the last party
Parameters:
status -> state that save if the gamer win or lose the party
good_word -> the word to guess
try -> the wrong letters try by the gamer
cpt_try -> the try's table size
good_try -> the good letters try by the gamer
cpt_good_try -> the good_try's table size
*/
void save_party(char * status, const char * good_word, char try[], int cpt_try, char good_try[], int cpt_good_try) {
time_t t;
time(&t); //stock the current time
char * date;
date = ctime(&t); //stock the current time format as: day, month, number of the month, hour, year
FILE* fichier = fopen("save_party.txt", "w");
if (fichier != NULL)
{
fputs("Date and time: ", fichier);
fputs(date,fichier);
fputs("\n",fichier);
fputs("Status: ", fichier);
fputs(status,fichier);
fputs("\n",fichier);
fputs("Good word: ", fichier);
fputs(good_word,fichier);
fputs("\n",fichier);
fputs("tried letters: ", fichier);
for (int i = 0; i < cpt_try; i++) {
fputc(try[i],fichier);
}
fputs("\n",fichier);
fputs("guessed letters: ", fichier);
for (int i = 0; i < cpt_good_try; i++) {
fputc(good_try[i],fichier);
}
fputs("\n",fichier);
fclose(fichier); // Close the opened file
}
}
/* this function display time out when user does nothing during 30s and verify signal*/
void sig_handler(int signum){
if (signum == SIGALRM){
printf("\ntime out\n");
exit (1);
}
}
/* /*
getWordByLength() function adds the possibility to the user to choose how many letters maximum the word to guess can contains. getWordByLength() function adds the possibility to the user to choose how many letters maximum the word to guess can contains.
@@ -142,13 +82,6 @@ int main() {
char guessed[word_length]; char guessed[word_length];
int tries = 0; int tries = 0;
int guessed_correctly = 0; int guessed_correctly = 0;
char try[MAX_TRIES]; //save the carcater false
char good_try[word_length]; //save the carcater good
int cpt = 0;
signal(SIGALRM,sig_handler);
signal(SIGALRM,sig_handler);
for (int i = 0; i < word_length; i++) { for (int i = 0; i < word_length; i++) {
guessed[i] = '_'; guessed[i] = '_';
@@ -156,16 +89,11 @@ int main() {
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;
for (int i = 0; i < word_length; i++) { for (int i = 0; i < word_length; i++) {
@@ -179,21 +107,15 @@ int main() {
} }
if (!found) { if (!found) {
try[tries] = guess;
tries++; tries++;
}else{
good_try[cpt] = guess;
cpt++;
} }
} }
if (guessed_correctly == word_length) { if (guessed_correctly == word_length) {
printf("Félicitations ! Vous avez deviné le mot : %s\n", word); printf("Félicitations ! Vous avez deviné le mot : %s\n", word);
save_party("Win", word, try, tries, good_try, cpt);
} else { } else {
printf("Désolé, vous avez perdu. Le mot était : %s\n", word); printf("Désolé, vous avez perdu. Le mot était : %s\n", word);
display_hangman(MAX_TRIES); display_hangman(MAX_TRIES);
save_party("Lose", word, try, tries, good_try, cpt);
} }
return 0; return 0;

View File

@@ -1,6 +0,0 @@
Date and time: Fri Oct 25 18:47:28 2024
Status: Lose
Good word: koala
tried letters: zertyu
guessed letters: a