From baca448ea2b3082016e66fddcb3ddd4fba28c364 Mon Sep 17 00:00:00 2001 From: David Vereb Date: Tue, 10 Mar 2020 16:11:16 -0400 Subject: [PATCH] Added end-of-questions screen with time elapsed. --- main.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/main.cpp b/main.cpp index fe807d2..500a22b 100644 --- a/main.cpp +++ b/main.cpp @@ -9,6 +9,7 @@ #include "Problem.h" #include +#include #define PROMPT " > " @@ -62,8 +63,12 @@ int main(int argc, char *argv[]) if(problem) problem->Draw(problem == *selected, input_style); + // Keep track of time: + auto start_time = std::chrono::steady_clock::now(); + while(selected != problems.end() && *selected) { + Problem *current_problem = *selected; current_problem->Draw(true, input_style); // refresh with new input auto input = getch(); @@ -101,6 +106,22 @@ int main(int argc, char *argv[]) current_problem->Draw(current_problem == *selected, input_style); // refresh with new input } + // Keep track of time: + auto end_time = std::chrono::steady_clock::now(); + auto elapsed_time = std::chrono::duration_cast(end_time - start_time); + int middle_h = COLS / 2; + int middle_v = LINES / 2; + clear(); + mvprintw(middle_v - 1, middle_h - 10, + "Time Elapsed: %02dm %02ds\n", + elapsed_time / 60, elapsed_time % 60); + mvprintw(middle_v + 1, middle_h - 8, + "Press Q to quit."); + wrefresh(stdscr); + + while(!(getch() == 'q')) + ; + for(auto *problem : problems) if(problem) delete problem;