From 7970094e7394153996c9a33d8c670d42a379195d Mon Sep 17 00:00:00 2001 From: Daniel Eisele Date: Thu, 24 Aug 2017 01:38:07 +0200 Subject: [PATCH] Fixed right/wrong ratio calculation (ratio was calculated with an integer division); "max" will be printed instead of a number when 0 wrong guesses have been made; decimal places of time removed (time is only measured in seconds) --- hangman.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/hangman.c b/hangman.c index 8009e5b..f65f690 100644 --- a/hangman.c +++ b/hangman.c @@ -315,8 +315,7 @@ int checkWin(game_state *gs) { void printGameStats(game_state *gs) { //clear(); int i, z; - double diff; - diff = difftime(gs->endTime, gs->startTime); + if (!gs->trollEnabled) { for (z = 0; z <= gs->wordRows; z++) { //<= takes the last row too for (i = 0; i < gs->maxx; i++) { @@ -335,16 +334,18 @@ void printGameStats(game_state *gs) { mvprintw(gs->centery + 1, gs->centerx - (gs->wordLength / 2), gs->guessWord); } else { char message[100]; - float result = 0; + sprintf(message, "Game won! Total guesses: %i", gs->guesses); mvprintw(gs->centery, gs->centerx - (strlen(message) / 2), message); + + sprintf(message, "Wrong guesses: %i, right/wrong ratio: ", gs->moves); if (gs->moves != 0) { - result = (float)((gs->guesses - gs->moves) / gs->moves); + sprintf(message + strlen(message), "%.2f", ((double)gs->guesses - (double)gs->moves) / (double)gs->moves); } else { - result = (float)((gs->guesses - gs->moves) / 1); + sprintf(message + strlen(message), "max"); } - sprintf(message, "Wrong guesses: %i, right/wrong ratio: %.2f, time: %.2fsec", gs->moves, result, diff); + sprintf(message + strlen(message), ", time: %llusec", (unsigned long long)(gs->endTime - gs->startTime)); mvprintw(gs->centery + 1, gs->centerx - (strlen(message) / 2), message); mvprintw(gs->centery + 2, gs->centerx - (gs->wordLength / 2), gs->guessWord);