+void quiz::trim_questions() {
+ vector<question *> new_questions;
+ int number;
+ int nr_questions;
+
+ qsrand(QDateTime::currentDateTime().toTime_t());
+
+ nr_questions = subset;
+ while (nr_questions) {
+ number = qrand() % questions.size();
+ new_questions.push_back(questions.at(number));
+ questions.erase(questions.begin() + number);
+ nr_questions--;
+ }
+ questions.clear();
+ questions = new_questions;
+ total = subset;
+}
+
+void quiz::build_index() {
+ vector<question *>::iterator itr;
+ int position = 0;
+
+ for (itr = questions.begin(); itr != questions.end() ; itr++, position++) {
+ index[(*itr)->answer.toLower()] = position;
+ if (!(*itr)->alternate_answers.isEmpty()) {
+ QList<QString>::iterator list_itr;
+
+ for (list_itr = (*itr)->alternate_answers.begin();
+ list_itr != (*itr)->alternate_answers.end(); list_itr++)
+ index[(*list_itr).toLower()] = position;
+ }
+ }
+}
+