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}
` : `${section.alt}` ).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) => `
${qIndex + 1}. ${question.question}
${question.options.map((option, oIndex) => ` `).join('')}
`).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();