summaryrefslogtreecommitdiffstats
path: root/include/quiz.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/quiz.h')
-rw-r--r--include/quiz.h34
1 files changed, 34 insertions, 0 deletions
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 @@
1//
2// Created by philw on 01/03/2026.
3//
4
5#pragma once
6
7#include "../include/questions.h"
8#include <stdbool.h>
9#include <stddef.h>
10#include <stdio.h>
11
12#define PERCENT_MULTIPLIER 100.0
13#define SCORE_FORMAT "Score: %zu/%zu (%.1f%%)\n"
14
15// ------------------------
16// Quiz state
17// ------------------------
18typedef struct {
19 QuestionSet questions;
20 FILE* csv;
21 unsigned int seed;
22 size_t total_answered;
23 size_t total_correct;
24 int time_limit;
25} QuizSession;
26
27// ------------------------
28// Quiz functions
29// ------------------------
30bool initialize_quiz_session(QuizSession* session);
31bool quiz_iteration(QuizSession* session);
32void print_score(size_t correct, size_t total);
33void print_final_score(const QuizSession* session);
34void cleanup_session(QuizSession* session);