forked from menault/TD3_DEV51_Qualite_Algo
		
	Ajout création de logs #1
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
*.log
 | 
			
		||||
*.out
 | 
			
		||||
.vscode
 | 
			
		||||
							
								
								
									
										100
									
								
								pendu.c
									
									
									
									
									
								
							
							
						
						
									
										100
									
								
								pendu.c
									
									
									
									
									
								
							@@ -2,6 +2,7 @@
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include <time.h>
 | 
			
		||||
#include <stdbool.h>
 | 
			
		||||
 | 
			
		||||
#define MAX_WORDS 14
 | 
			
		||||
#define MAX_TRIES 6
 | 
			
		||||
@@ -20,22 +21,68 @@ const char *words[MAX_WORDS] = {
 | 
			
		||||
    "gyroscope",
 | 
			
		||||
    "periclitation",
 | 
			
		||||
    "susurrer",
 | 
			
		||||
    "eclesiastique"
 | 
			
		||||
};
 | 
			
		||||
    "eclesiastique"};
 | 
			
		||||
 | 
			
		||||
void display_hangman(int tries) {
 | 
			
		||||
    switch (tries) {
 | 
			
		||||
        case 0: printf("  ----\n  |  |\n  |\n  |\n  |\n  |\n--------\n"); break;
 | 
			
		||||
        case 1: printf("  ----\n  |  |\n  |  O\n  |\n  |\n  |\n--------\n"); break;
 | 
			
		||||
        case 2: printf("  ----\n  |  |\n  |  O\n  |  |\n  |\n  |\n--------\n"); break;
 | 
			
		||||
        case 3: printf("  ----\n  |  |\n  |  O\n  | /|\n  |\n  |\n--------\n"); break;
 | 
			
		||||
        case 4: printf("  ----\n  |  |\n  |  O\n  | /|\\\n  |\n  |\n--------\n"); break;
 | 
			
		||||
        case 5: printf("  ----\n  |  |\n  |  O\n  | /|\\\n  | /\n  |\n--------\n"); break;
 | 
			
		||||
        case 6: printf("  ----\n  |  |\n  |  O\n  | /|\\\n  | / \\\n  |\n--------\n"); break;
 | 
			
		||||
void display_hangman(int tries)
 | 
			
		||||
{
 | 
			
		||||
    switch (tries)
 | 
			
		||||
    {
 | 
			
		||||
    case 0:
 | 
			
		||||
        printf("  ----\n  |  |\n  |\n  |\n  |\n  |\n--------\n");
 | 
			
		||||
        break;
 | 
			
		||||
    case 1:
 | 
			
		||||
        printf("  ----\n  |  |\n  |  O\n  |\n  |\n  |\n--------\n");
 | 
			
		||||
        break;
 | 
			
		||||
    case 2:
 | 
			
		||||
        printf("  ----\n  |  |\n  |  O\n  |  |\n  |\n  |\n--------\n");
 | 
			
		||||
        break;
 | 
			
		||||
    case 3:
 | 
			
		||||
        printf("  ----\n  |  |\n  |  O\n  | /|\n  |\n  |\n--------\n");
 | 
			
		||||
        break;
 | 
			
		||||
    case 4:
 | 
			
		||||
        printf("  ----\n  |  |\n  |  O\n  | /|\\\n  |\n  |\n--------\n");
 | 
			
		||||
        break;
 | 
			
		||||
    case 5:
 | 
			
		||||
        printf("  ----\n  |  |\n  |  O\n  | /|\\\n  | /\n  |\n--------\n");
 | 
			
		||||
        break;
 | 
			
		||||
    case 6:
 | 
			
		||||
        printf("  ----\n  |  |\n  |  O\n  | /|\\\n  | / \\\n  |\n--------\n");
 | 
			
		||||
        break;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int main() {
 | 
			
		||||
// Add the game's stats to a file
 | 
			
		||||
void add_to_logs(const char *word, int tries, int guessed_correctly, bool won, char guessed[], double time_spent)
 | 
			
		||||
{
 | 
			
		||||
    FILE *log_file = fopen("pendu.log", "a");
 | 
			
		||||
    if (log_file == NULL)
 | 
			
		||||
    {
 | 
			
		||||
        printf("Error : Can't open file.\n");
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
    fprintf(log_file, "Log of : %s\n", __DATE__);
 | 
			
		||||
    fprintf(log_file, "Guessed correctly : %d\n", guessed_correctly);
 | 
			
		||||
    fprintf(log_file, "Total tries : %d\n", tries + guessed_correctly);
 | 
			
		||||
    fprintf(log_file, "Guessed letters  : %s\n", guessed);
 | 
			
		||||
    fprintf(log_file, "Word : %s\n", word);
 | 
			
		||||
 | 
			
		||||
    if (won)
 | 
			
		||||
    {
 | 
			
		||||
        fprintf(log_file, "Result : Win\n");
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
        fprintf(log_file, "Result : Lose\n");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fprintf(log_file, "Time spent : %fsec\n\n", time_spent);
 | 
			
		||||
 | 
			
		||||
    fclose(log_file);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int main()
 | 
			
		||||
{
 | 
			
		||||
    time_t start = time(NULL);
 | 
			
		||||
    srand(time(NULL));
 | 
			
		||||
    const char *word = words[rand() % MAX_WORDS];
 | 
			
		||||
    int word_length = strlen(word);
 | 
			
		||||
@@ -43,12 +90,14 @@ int main() {
 | 
			
		||||
    int tries = 0;
 | 
			
		||||
    int guessed_correctly = 0;
 | 
			
		||||
 | 
			
		||||
    for (int i = 0; i < word_length; i++) {
 | 
			
		||||
    for (int i = 0; i < word_length; i++)
 | 
			
		||||
    {
 | 
			
		||||
        guessed[i] = '_';
 | 
			
		||||
    }
 | 
			
		||||
    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);
 | 
			
		||||
        display_hangman(tries);
 | 
			
		||||
        char guess;
 | 
			
		||||
@@ -56,9 +105,12 @@ int main() {
 | 
			
		||||
        scanf(" %c", &guess);
 | 
			
		||||
        int found = 0;
 | 
			
		||||
 | 
			
		||||
        for (int i = 0; i < word_length; i++) {
 | 
			
		||||
            if (word[i] == guess) {
 | 
			
		||||
                if (guessed[i] == '_') {
 | 
			
		||||
        for (int i = 0; i < word_length; i++)
 | 
			
		||||
        {
 | 
			
		||||
            if (word[i] == guess)
 | 
			
		||||
            {
 | 
			
		||||
                if (guessed[i] == '_')
 | 
			
		||||
                {
 | 
			
		||||
                    guessed[i] = guess;
 | 
			
		||||
                    guessed_correctly++;
 | 
			
		||||
                }
 | 
			
		||||
@@ -66,15 +118,23 @@ int main() {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (!found) {
 | 
			
		||||
        if (!found)
 | 
			
		||||
        {
 | 
			
		||||
            tries++;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (guessed_correctly == word_length) {
 | 
			
		||||
    time_t end = time(NULL);
 | 
			
		||||
    double time_spent = difftime(end, start);
 | 
			
		||||
    if (guessed_correctly == word_length)
 | 
			
		||||
    {
 | 
			
		||||
        printf("Félicitations ! Vous avez deviné le mot : %s\n", word);
 | 
			
		||||
    } else {
 | 
			
		||||
        add_to_logs(word, tries, guessed_correctly, 1, guessed, time_spent);
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
        printf("Désolé, vous avez perdu. Le mot était : %s\n", word);
 | 
			
		||||
        add_to_logs(word, tries, guessed_correctly, 0, guessed, time_spent);
 | 
			
		||||
        display_hangman(MAX_TRIES);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user