diff --git a/MainPage/stas/WoerterLernen.html b/MainPage/stas/WoerterLernen.html index 4721bb0..408ddb7 100644 --- a/MainPage/stas/WoerterLernen.html +++ b/MainPage/stas/WoerterLernen.html @@ -12,7 +12,7 @@
-
+
@@ -30,7 +30,7 @@
- +
@@ -38,21 +38,40 @@
- + + +
\ No newline at end of file diff --git a/MainPage/stas/eigenerCode.js b/MainPage/stas/eigenerCode.js index ee5a737..9073ce2 100644 --- a/MainPage/stas/eigenerCode.js +++ b/MainPage/stas/eigenerCode.js @@ -8,29 +8,6 @@ document.getElementById('copyButton').addEventListener('click', () => { }).catch(err => { console.error('Konnte nicht kopieren: ', err); }); - - for (let i = 0; i < parsedArray.length; i += 8) { - const pageFront = document.createElement("div"); - pageFront.className = "page_front"; - const pageBack = document.createElement("div"); - pageBack.className = "page_back"; - - const currentSlice = parsedArray.slice(i, i + 8); - currentSlice.forEach(karte => { - const frontCard = document.createElement("div"); - frontCard.className = "card"; - frontCard.innerHTML = `

${karte.englisch}

${karte.ipa}

${karte.beispielEN}

`; - pageFront.appendChild(frontCard); - - const backCard = document.createElement("div"); - backCard.className = "card"; - backCard.innerHTML = `

${karte.deutsch}

${karte.beispielDE}

`; - pageBack.appendChild(backCard); - }); - - container.appendChild(pageFront); - container.appendChild(pageBack); - } }); function parseWordText(inputText) { @@ -85,13 +62,12 @@ button.addEventListener("click", () => { alert("Karten erfolgreich erstellt!"); + showView("modusAuswahlSeite"); + document.getElementById("title").style.display = "none"; button.style.display = "none"; - document.getElementById("modusAuswahlSeite").style.display = "block"; - - }); document.querySelectorAll(".modus-btn").forEach(button => { @@ -141,11 +117,193 @@ function createPDFPages(wordArray) { kartenContainer.appendChild(backPage); document.getElementById("druckenBtn").style.display = "block"; } - alert("PDF-Seiten wurden erstellt! Du kannst sie jetzt druken."); + alert("PDF-Seiten wurden erstellt! Du kannst sie jetzt drucken."); } document.getElementById("druckenBtn").addEventListener("click", () => { window.print(); }); - \ No newline at end of file +const modusBtns = document.querySelectorAll('.modus-btn'); +const trainingLevels = document.getElementById('trainingLevels'); + +modusBtns.forEach(btn => { + btn.addEventListener('click', () => { + const modus = btn.dataset.modus; + + if (modus === 'druck') { + showView('pdfPages'); + } + + else if (modus === 'training_einfach') { + showView('trainingLevels'); + } + + else if (modus === 'statistik') { + console.log("Statistik anzeigen..."); + } + }); +}); + +let trainingsZustand = { + modus: "leicht", + quelleKarten: [], + aktiveKarten: [], + gelernt: [], + nichtGelernt: [], +}; + +function startLeichtTraining() { + console.log("🔥 startLeichtTraining вызвана"); + + if (!parsedArray || parsedArray.length === 0) { + alert("Нет карточек для тренировки"); + return; + } + + trainingsZustand.quelleKarten = [...parsedArray]; + trainingsZustand.aktiveKarten = []; + trainingsZustand.gelernt = []; + trainingsZustand.nichtGelernt = []; + + for (let i = 0; i < 3; i++) { + if (trainingsZustand.quelleKarten.length > 0) { + const karte = trainingsZustand.quelleKarten.shift(); + karte.versuche = 0; + trainingsZustand.aktiveKarten.push(karte); + } + } + + zeigeNaechsteKarte(); +} + +function zeigeNaechsteKarte() { + if ( + trainingsZustand.aktiveKarten.length === 0 && + trainingsZustand.quelleKarten.length === 0 + ) { + alert(`Training beendet! + Gelernt: ${trainingsZustand.gelernt.length} + Nicht gelernt: ${trainingsZustand.nichtGelernt.length}`); + return; + } + + const index = Math.floor( + Math.random() * trainingsZustand.aktiveKarten.length + ); + + trainingsZustand.aktuelleKarte = + trainingsZustand.aktiveKarten[index]; + + renderLeichtKarte(trainingsZustand.aktuelleKarte); +} + +function renderLeichtKarte(karte) { + const container = document.getElementById("trainingLeicht"); + container.innerHTML = ""; + + const cardEl = document.createElement("div"); + cardEl.className = "training-card"; + cardEl.innerHTML = ` +
+
+

${karte.englisch}

+
${karte.ipa}
+
${karte.beispielEN}
+
+
+

${karte.deutsch}

+
${karte.beispielDE}
+
+
+ `; + + cardEl.onclick = () => cardEl.classList.toggle("flip"); + + const actions = document.createElement("div"); + actions.className = "training-actions"; + actions.innerHTML = ` + + + `; + + actions.querySelector("#knowBtn").onclick = () => antworteAufKarte(true); + actions.querySelector("#dontKnowBtn").onclick = () => antworteAufKarte(false); + + container.appendChild(cardEl); + container.appendChild(actions); +} + +function antworteAufKarte(weißIch) { + const karte = trainingsZustand.aktuelleKarte; + + if (weißIch) { + trainingsZustand.gelernt.push(karte); + trainingsZustand.aktiveKarten = trainingsZustand.aktiveKarten.filter(k => k !== karte); + } else { + karte.versuche++; + if (karte.versuche >= 5) { + trainingsZustand.nichtGelernt.push(karte); + trainingsZustand.aktiveKarten = trainingsZustand.aktiveKarten.filter(k => k !== karte); + } else { + trainingsZustand.aktiveKarten.push(trainingsZustand.aktiveKarten.splice(trainingsZustand.aktiveKarten.indexOf(karte), 1)[0]); + } + } + + if (trainingsZustand.aktiveKarten.length < 3 && trainingsZustand.quelleKarten.length > 0) { + let neueKarte = trainingsZustand.quelleKarten.shift(); + neueKarte.versuche = 0; + trainingsZustand.aktiveKarten.push(neueKarte); + } + + zeigeNaechsteKarte(); +} + +function showView(id) { + document.querySelectorAll(".modus-view").forEach(view => { + view.style.display = "none"; + }); + + const active = document.getElementById(id); + if (active) { + active.style.display = "block"; + } +} + +function showTrainingLevel(id) { + document.querySelectorAll(".training-view").forEach(view => { + view.style.display = "none"; + }); + + const active = document.getElementById(id); + if (active) { + active.style.display = "block"; + } +} + +document.querySelectorAll(".level-btn").forEach(btn => { + btn.addEventListener("click", () => { + const level = btn.dataset.level; + + if (level === "leicht") { + showTrainingLevel("trainingLeicht"); + startLeichtTraining(); + } + + if (level === "mittel") { + showTrainingLevel("trainingMittel"); + startMittelTraining(); + } + + if (level === "schwer") { + showTrainingLevel("trainingSchwer"); + startSchwerTraining(); + } + }); +}); + +document + .querySelector(".modus-btn[data-modus='training_einfach']") + .addEventListener("click", () => { + showView("onlineTraining"); +}); diff --git a/MainPage/stas/style.css b/MainPage/stas/style.css index f43ab6d..dfe3695 100644 --- a/MainPage/stas/style.css +++ b/MainPage/stas/style.css @@ -280,3 +280,87 @@ h1 { padding: 0; } } + +.training-card { + width: 300px; + height: 180px; + margin: 10px auto; + perspective: 1000px; + cursor: pointer; +} + +.training-card-inner { + width: 100%; + height: 100%; + position: relative; + transition: transform 0.6s; + transform-style: preserve-3d; +} + +.training-card.flip .training-card-inner { + transform: rotateY(180deg); +} + +.training-front, +.training-back { + position: absolute; + width: 100%; + height: 100%; + backface-visibility: hidden; + border: 2px solid #333; + border-radius: 10px; + padding: 15px; + box-sizing: border-box; + display: flex; + flex-direction: column; + justify-content: center; + gap: 10px; +} + +.training-back { + transform: rotateY(180deg); + background: #f3f3f3; +} + +.training-actions { + text-align: center; + margin-top: 15px; +} + +.training-actions button { + margin: 0 10px; + padding: 8px 16px; + font-size: 16px; + cursor: pointer; +} + +.training-front h2 { + margin-bottom: 4px; + margin-top: -25px; +} + +.training-front .ipa { + font-size: 16px; + color: #555; + margin-bottom: 34px; + margin-top: -12px; +} + +.training-front .example { + font-size: 15px; + line-height: 1.4; +} + +.training-back h2 { + margin-bottom: 54px; + margin-top: -28px; +} + +.modus-view { + display: none; +} + +.training-view { + display: none; + margin-top: 25px; +}