class QuizUI {
constructor() {
this.currentDay = 1;
this.learningLogic = new LearningLogic();
this.initializeApp();
}
async initializeApp() {
await this.loadProgress();
this.renderLesson();
this.renderQuiz();
this.renderExercise();
this.updateScoreDisplay();
}
async loadProgress() {
// در حالت واقعی، از API سرور استفاده میشود
const savedProgress = localStorage.getItem('userProgress');
if (savedProgress) {
this.learningLogic.user_progress = JSON.parse(savedProgress);
}
}
saveProgress() {
localStorage.setItem('userProgress',
JSON.stringify(this.learningLogic.user_progress));
}
renderLesson() {
const lessonData = this.learningLogic.load_lesson(this.currentDay);
if (!lessonData) return;
const lessonContent = document.getElementById('lessonContent');
lessonContent.innerHTML = `
${lessonData.title}
${lessonData.sections.map(section =>
section.type === 'text'
? `${section.content}
`
: `
`
).join('')}
`;
}
renderQuiz() {
const quizData = this.learningLogic.load_quiz(this.currentDay);
if (!quizData) return;
const quizForm = document.getElementById('quizForm');
quizForm.innerHTML = quizData.questions.map((question, qIndex) => `
`).join('');
// اضافه کردن دکمه ارسال
quizForm.innerHTML += ``;
}
renderExercise() {
const exerciseData = this.learningLogic.load_exercise(this.currentDay);
if (!exerciseData) return;
const exerciseSection = document.getElementById('exerciseSection');
exerciseSection.innerHTML = `
${exerciseData.exercise.question}
${exerciseData.exercise.hint ? `💡 نکته: ${exerciseData.exercise.hint}
` : ''}
`;
}
submitQuiz() {
const quizData = this.learningLogic.load_quiz(this.currentDay);
const userAnswers = [];
quizData.questions.forEach(question => {
const selectedOption = document.querySelector(
`input[name="question_${question.id}"]:checked`
);
userAnswers.push(selectedOption ? parseInt(selectedOption.value) : -1);
});
const result = this.learningLogic.check_quiz_answers(this.currentDay, userAnswers);
this.showQuizFeedback(result);
this.saveProgress();
this.updateScoreDisplay();
}
submitExercise() {
const answer = document.getElementById('exerciseAnswer').value.trim();
if (!answer) {
alert('لطفاً پاسخ خود را وارد کنید');
return;
}
const result = this.learningLogic.check_exercise_answer(this.currentDay, answer);
this.showExerciseFeedback(result);
this.saveProgress();
this.updateScoreDisplay();
}
showQuizFeedback(result) {
const feedbackDiv = document.getElementById('quizFeedback');
if (!feedbackDiv) {
const quizForm = document.getElementById('quizForm');
quizForm.insertAdjacentHTML('beforeend', '');
}
const feedbackHTML = `
نتایج کوییز
پاسخهای صحیح: ${result.correct_count} از ${result.total_questions}
پاداش کسب شده: ${result.reward} امتیاز
${result.feedback}
${result.results.map((qResult, index) => `
سوال ${index + 1}: ${qResult.is_correct ? '✅ صحیح' : '❌ ناصحیح'}
`).join('')}
`;
document.getElementById('quizFeedback').innerHTML = feedbackHTML;
}
showExerciseFeedback(result) {
const feedbackDiv = document.getElementById('exerciseFeedback');
const feedbackHTML = `
نتایج تمرین
وضعیت: ${result.is_correct ? '✅ پذیرفته شده' : '❌ نیاز به بهبود'}
کلمات کلیدی یافت شده: ${result.matched_keywords.join(', ') || 'هیچکدام'}
پاداش کسب شده: ${result.reward} امتیاز
${result.feedback}
`;
feedbackDiv.innerHTML = feedbackHTML;
}
updateScoreDisplay() {
const scoreDisplay = document.getElementById('userScore');
if (scoreDisplay) {
scoreDisplay.textContent =
this.learningLogic.user_progress.total_score + ' امتیاز';
}
}
}
// راهاندازی برنامه
const quizUI = new QuizUI();