9 Commits

Author SHA1 Message Date
159c83ea8d Added difficulty and comments 2024-10-23 21:01:29 +02:00
8877777c62 Commentaires 2024-10-15 12:27:04 +02:00
10c9aca59a Actualiser pendu.c 2024-10-15 12:16:52 +02:00
3c4ed87d6c ajout des commentaires. 2024-10-15 12:12:39 +02:00
ebfe656cf4 ajout du cooldown sur le scanf 2024-10-15 12:12:04 +02:00
4960203ced Merge pull request 'dev-landrin' (#6) from dev-landrin into master
Reviewed-on: #6
2024-10-15 12:04:07 +02:00
2598c1951d Supprimer exependu 2024-10-15 12:02:39 +02:00
fba618ec0e Dylan Landrin add some comments 2024-10-15 12:01:14 +02:00
179c7b82c0 Dylan Landrin add save file 2024-10-15 11:33:30 +02:00
2 changed files with 84 additions and 0 deletions

84
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,72 @@ void display_hangman(int tries) {
} }
} }
<<<<<<< HEAD
<<<<<<< HEAD
<<<<<<< HEAD
<<<<<<< HEAD
/*
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 letters try by the gamer
*/
void save_party(char * status, const char * good_word, char 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 < sizeof(try); i++) {
fputc(try[i],fichier);
}
fputs("\n",fichier);
fclose(fichier); // On ferme le fichier qui a été ouvert
}
=======
<<<<<<< HEAD
=======
void sig_handler(int signum){
printf("\ntime out\n");
exit (1);
>>>>>>> b4f25a5 (ajout du cooldown sur le scanf)
=======
=======
>>>>>>> dev-rocherl
>>>>>>> 083b1f2 (Commentaires)
/* 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);
}
<<<<<<< HEAD
>>>>>>> 83066e1 (ajout des commentaires.)
=======
>>>>>>> dev-rocherl
=======
/* /*
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.
@@ -69,6 +137,7 @@ const char* getWordByLength(){
word = (const char*) strcat((char *) word, newWords[rand() % wordsFound]); word = (const char*) strcat((char *) word, newWords[rand() % wordsFound]);
}*/ }*/
return word; return word;
>>>>>>> dev-schied
} }
int main() { int main() {
@@ -82,6 +151,11 @@ 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 try
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] = '_';
@@ -89,11 +163,17 @@ 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++) {
@@ -101,21 +181,25 @@ int main() {
if (guessed[i] == '_') { if (guessed[i] == '_') {
guessed[i] = guess; guessed[i] = guess;
guessed_correctly++; guessed_correctly++;
try[tries] = guess;
} }
found = 1; found = 1;
} }
} }
if (!found) { if (!found) {
try[tries] = guess;
tries++; tries++;
} }
} }
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);
} 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);
} }
return 0; return 0;

BIN
save_party.txt Normal file

Binary file not shown.