parent
415c6f41e2
commit
cb49392dc3
@ -1,97 +0,0 @@
|
||||
import java.util.*;
|
||||
|
||||
public class QuizController {
|
||||
private QuestionGenerator questionGenerator;
|
||||
private List<Question> currentQuiz;
|
||||
private int currentQuestionIndex;
|
||||
private int score;
|
||||
private Map<Integer, Integer> userAnswers;
|
||||
|
||||
public static class Question {
|
||||
private int id;
|
||||
private String content;
|
||||
private String[] options;
|
||||
private int correctAnswer;
|
||||
private String difficulty;
|
||||
|
||||
public Question(int id, String content, String[] options, int correctAnswer, String difficulty) {
|
||||
this.id = id;
|
||||
this.content = content;
|
||||
this.options = options;
|
||||
this.correctAnswer = correctAnswer;
|
||||
this.difficulty = difficulty;
|
||||
}
|
||||
|
||||
public int getId() { return id; }
|
||||
public String getContent() { return content; }
|
||||
public String[] getOptions() { return options; }
|
||||
public int getCorrectAnswer() { return correctAnswer; }
|
||||
public String getDifficulty() { return difficulty; }
|
||||
|
||||
public boolean checkAnswer(int userAnswer) {
|
||||
return userAnswer == correctAnswer;
|
||||
}
|
||||
}
|
||||
|
||||
public QuizController() {
|
||||
this.questionGenerator = new QuestionGenerator();
|
||||
this.userAnswers = new HashMap<>();
|
||||
}
|
||||
|
||||
public void startNewQuiz(String difficulty, int questionCount) {
|
||||
this.currentQuiz = questionGenerator.generateQuestionSet(questionCount, difficulty);
|
||||
this.currentQuestionIndex = 0;
|
||||
this.score = 0;
|
||||
this.userAnswers.clear();
|
||||
}
|
||||
|
||||
public Question getCurrentQuestion() {
|
||||
if (currentQuiz == null || currentQuestionIndex >= currentQuiz.size()) {
|
||||
return null;
|
||||
}
|
||||
return currentQuiz.get(currentQuestionIndex);
|
||||
}
|
||||
|
||||
public boolean submitAnswer(int answer) {
|
||||
if (currentQuiz == null || currentQuestionIndex >= currentQuiz.size()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Question current = currentQuiz.get(currentQuestionIndex);
|
||||
userAnswers.put(currentQuestionIndex, answer);
|
||||
|
||||
if (current.checkAnswer(answer)) {
|
||||
score++;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean nextQuestion() {
|
||||
if (currentQuiz == null || currentQuestionIndex >= currentQuiz.size() - 1) {
|
||||
return false;
|
||||
}
|
||||
currentQuestionIndex++;
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean hasNextQuestion() {
|
||||
return currentQuiz != null && currentQuestionIndex < currentQuiz.size() - 1;
|
||||
}
|
||||
|
||||
public int getCurrentQuestionNumber() {
|
||||
return currentQuestionIndex + 1;
|
||||
}
|
||||
|
||||
public int getTotalQuestions() {
|
||||
return currentQuiz != null ? currentQuiz.size() : 0;
|
||||
}
|
||||
|
||||
public int getScore() {
|
||||
return score;
|
||||
}
|
||||
|
||||
public double getPercentage() {
|
||||
return currentQuiz != null ? (double) score / currentQuiz.size() * 100 : 0;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in new issue