// ====================== QUIZ DATA ====================== const quizData = [ { frage: "Welche Aufgabe hat HTML bei der Web-Entwicklung?", antworten: [ { text: "Struktur und Inhalte der Webseite", korrekt: true }, { text: "Design und visuelle Gestaltung", korrekt: false }, { text: "Interaktivität und dynamisches Verhalten", korrekt: false } ] }, { frage: "Wo an der PH Weingarten findet die Lehrveranstaltung 'Entwicklung interaktiver Softwareanwendungen' statt?", antworten: [ { text: "Universität Konstanz", korrekt: false }, { text: "PH Weingarten", korrekt: true }, { text: "Universität Stuttgart", korrekt: false } ] }, { frage: "Mit welcher Methode kannst du auf ein HTML-Element zugreifen, wenn du seine ID kennst?", antworten: [ { text: "document.getElementByName()", korrekt: false }, { text: "document.getElementById()", korrekt: true }, { text: "document.selectElement()", korrekt: false } ] } ]; // ====================== QUIZ STATE ====================== let currentQuestion = 0; let points = 0; let answeredQuestions = new Set(); // ====================== INIT ====================== function initQuiz() { currentQuestion = 0; points = 0; answeredQuestions = new Set(); displayQuestion(); } // ====================== DISPLAY QUESTION ====================== function displayQuestion() { const container = document.getElementById('quiz-container'); const resultContainer = document.getElementById('quiz-result'); // Quiz beendet if (currentQuestion >= quizData.length) { container.style.display = 'none'; resultContainer.style.display = 'block'; displayResult(); return; } // Frage anzeigen resultContainer.style.display = 'none'; container.style.display = 'block'; const question = quizData[currentQuestion]; container.innerHTML = `
Frage ${currentQuestion + 1} von ${quizData.length}

${question.frage}

${question.antworten.map((antwort, index) => ` `).join('')}

Punkte: ${points}/${quizData.length}

`; } // ====================== ANSWER QUESTION ====================== function answerQuestion(answerIndex) { // Verhindere mehrfaches Antworten bei gleicher Frage if (answeredQuestions.has(currentQuestion)) { return; } answeredQuestions.add(currentQuestion); const question = quizData[currentQuestion]; const selectedAnswer = question.antworten[answerIndex]; const feedbackEl = document.getElementById('feedback'); const buttons = document.querySelectorAll('.answer-btn'); // Buttons deaktivieren buttons.forEach(btn => btn.disabled = true); // Feedback geben if (selectedAnswer.korrekt) { points++; feedbackEl.textContent = '✅ Richtig!'; feedbackEl.className = 'feedback correct'; buttons[answerIndex].classList.add('correct'); } else { feedbackEl.textContent = `❌ Falsch! Die richtige Antwort ist: "${question.antworten.find(a => a.korrekt).text}"`; feedbackEl.className = 'feedback incorrect'; buttons[answerIndex].classList.add('incorrect'); // Richtige Antwort auch als grün markieren const correctIndex = question.antworten.findIndex(a => a.korrekt); buttons[correctIndex].classList.add('correct'); } feedbackEl.style.display = 'block'; // Nächste Frage nach Verzögerung setTimeout(() => { currentQuestion++; displayQuestion(); }, 2000); } // ====================== DISPLAY RESULT ====================== function displayResult() { const resultText = document.getElementById('result-text'); const percentage = Math.round((points / quizData.length) * 100); let message = ''; if (points === quizData.length) { message = `🌟 Perfekt! Du hast alle ${quizData.length} Fragen richtig beantwortet!`; } else if (points >= quizData.length * 0.66) { message = `👍 Sehr gut! Du hast ${points} von ${quizData.length} Fragen richtig (${percentage}%).`; } else if (points >= quizData.length * 0.33) { message = `📚 Okay! Du hast ${points} von ${quizData.length} Fragen richtig (${percentage}%). Mehr lernen hilft!`; } else { message = `💪 Nicht so schlecht! Du hast ${points} von ${quizData.length} Fragen richtig (${percentage}%). Nächstes Mal besser!`; } resultText.textContent = message; } // ====================== RESTART QUIZ ====================== document.addEventListener('DOMContentLoaded', function() { const restartBtn = document.getElementById('restart-btn'); if (restartBtn) { restartBtn.addEventListener('click', initQuiz); } // Quiz starten initQuiz(); });