From 9e9c1b21569faeabd33716e4153a881e2eed7134 Mon Sep 17 00:00:00 2001 From: Filip Wandzio Date: Sun, 1 Mar 2026 17:45:00 +0100 Subject: Separate quiz logic from main function fo dedicated module Signed-off-by: Filip Wandzio --- include/quiz.h | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 include/quiz.h (limited to 'include/quiz.h') diff --git a/include/quiz.h b/include/quiz.h new file mode 100644 index 0000000..db69367 --- /dev/null +++ b/include/quiz.h @@ -0,0 +1,34 @@ +// +// Created by philw on 01/03/2026. +// + +#pragma once + +#include "../include/questions.h" +#include +#include +#include + +#define PERCENT_MULTIPLIER 100.0 +#define SCORE_FORMAT "Score: %zu/%zu (%.1f%%)\n" + +// ------------------------ +// Quiz state +// ------------------------ +typedef struct { + QuestionSet questions; + FILE* csv; + unsigned int seed; + size_t total_answered; + size_t total_correct; + int time_limit; +} QuizSession; + +// ------------------------ +// Quiz functions +// ------------------------ +bool initialize_quiz_session(QuizSession* session); +bool quiz_iteration(QuizSession* session); +void print_score(size_t correct, size_t total); +void print_final_score(const QuizSession* session); +void cleanup_session(QuizSession* session); -- cgit v1.2.3