#kz-artikel-game {
font-family: Arial, sans-serif;
max-width: 650px;
margin: 20px auto;
padding: 22px;
border-radius: 20px;
background: #fff8e9;
color: #26364a;
text-align: center;
box-sizing: border-box;
}
#kz-artikel-game * { box-sizing: border-box; }
#kz-artikel-game h2 { color: #e66b35; margin-top: 5px; }
#kz-artikel-game .kz-progress {
background: #e6dfd2; border-radius: 20px;
height: 12px; overflow: hidden; margin: 18px 0;
}
#kz-artikel-game #kz-bar {
background: #43a77a; height: 100%; width: 0%;
transition: width .2s;
}
#kz-artikel-game .kz-card {
background: white; border-radius: 16px;
padding: 20px 12px; margin: 15px 0;
}
#kz-artikel-game #kz-word {
font-size: 30px; font-weight: bold;
color: #293f73; margin: 12px 0;
}
#kz-artikel-game #kz-translation { font-size: 18px; }
#kz-artikel-game .kz-options {
display: flex; gap: 10px; justify-content: center;
margin: 20px 0; flex-wrap: wrap;
}
#kz-artikel-game button {
border: 0; border-radius: 12px; padding: 13px 22px;
font-size: 19px; font-weight: bold; cursor: pointer;
}
#kz-artikel-game .kz-choice { color: white; min-width: 85px; }
#kz-artikel-game .kz-der { background: #4386d5; }
#kz-artikel-game .kz-die { background: #e66b85; }
#kz-artikel-game .kz-das { background: #e9ad36; color: #26364a; }
#kz-artikel-game button:disabled { opacity: .7; cursor: default; }
#kz-artikel-game #kz-feedback {
min-height: 48px; font-size: 17px; font-weight: bold;
margin: 12px 0;
}
#kz-artikel-game #kz-next {
background: #43a77a; color: white; display: none;
margin: 12px auto;
}
#kz-artikel-game #kz-restart {
background: #293f73; color: white; margin: 12px auto;
}
#kz-artikel-game .kz-small { font-size: 14px; color: #586575; }
🦔 Kinderzentrum: Der, die oder das?
Învață articolele substantivelor în limba germană!
Alege articolul corect pentru cuvântul afișat.
Întrebarea 1 din 50
Hund
Câine
⭐ Puncte: 0
(function () { const game = document.getElementById('kz-artikel-game'); if (game.dataset.started) return; game.dataset.started = 'yes'; const words = [ ['der','Hund','câine'], ['die','Katze','pisică'], ['das','Pferd','cal'], ['der','Vogel','pasăre'], ['die','Maus','șoarece'], ['das','Haus','casă'], ['die','Schule','școală'], ['der','Tisch','masă'], ['der','Stuhl','scaun'], ['das','Buch','carte'], ['die','Tasche','geantă'], ['der','Bleistift','creion'], ['die','Schere','foarfecă'], ['das','Heft','caiet'], ['die','Tür','ușă'], ['das','Fenster','fereastră'], ['die','Lampe','lampă'], ['der','Computer','calculator'], ['das','Handy','telefon mobil'], ['die','Uhr','ceas'], ['der','Apfel','măr'], ['die','Banane','banană'], ['das','Brot','pâine'], ['die','Milch','lapte'], ['das','Wasser','apă'], ['der','Käse','brânză'], ['die','Tomate','roșie'], ['die','Kartoffel','cartof'], ['das','Ei','ou'], ['der','Kuchen','prăjitură'], ['die','Mutter','mamă'], ['der','Vater','tată'], ['das','Kind','copil'], ['die','Familie','familie'], ['der','Bruder','frate'], ['die','Schwester','soră'], ['das','Baby','bebeluș'], ['der','Freund','prieten'], ['die','Lehrerin','profesoară'], ['der','Lehrer','profesor'], ['die','Sonne','soare'], ['der','Mond','lună (astru)'], ['der','Stern','stea'], ['die','Blume','floare'], ['der','Baum','copac'], ['das','Auto','mașină'], ['der','Bus','autobuz'], ['die','Bahn','tren / cale ferată'], ['das','Fahrrad','bicicletă'], ['der','Ball','minge'] ]; let order = []; let current = 0; let score = 0; let answered = false; let mistakes = []; const wordEl = game.querySelector('#kz-word'); const translationEl = game.querySelector('#kz-translation'); const counterEl = game.querySelector('#kz-counter'); const scoreEl = game.querySelector('#kz-score'); const feedbackEl = game.querySelector('#kz-feedback'); const nextBtn = game.querySelector('#kz-next'); const resultEl = game.querySelector('#kz-result'); const barEl = game.querySelector('#kz-bar'); const optionsEl = game.querySelector('#kz-options'); function render() { answered = false; const item = words[order[current]]; wordEl.textContent = item[1]; translationEl.textContent = '🇷🇴 ' + item[2]; counterEl.textContent = 'Întrebarea ' + (current + 1) + ' din ' + words.length; scoreEl.textContent = '⭐ Puncte: ' + score; feedbackEl.textContent = ''; resultEl.textContent = ''; barEl.style.width = (current / words.length * 100) + '%'; nextBtn.style.display = 'none'; optionsEl.querySelectorAll('button').forEach(btn => { btn.disabled = false; btn.style.outline = 'none'; }); } optionsEl.querySelectorAll('button').forEach(btn => { btn.addEventListener('click', function () { if (answered) return; answered = true; const item = words[order[current]]; const correct = btn.dataset.art === item[0]; optionsEl.querySelectorAll('button').forEach(b => { b.disabled = true; if (b.dataset.art === item[0]) { b.style.outline = '4px solid #43a77a'; } }); if (correct) { score++; feedbackEl.textContent = '🎉 Bravo! Răspuns corect: ' + item[0] + ' ' + item[1] + '!'; feedbackEl.style.color = '#218653'; } else { mistakes.push(item); feedbackEl.textContent = '💡 Răspunsul corect este: ' + item[0] + ' ' + item[1] + '.'; feedbackEl.style.color = '#bd4c48'; } scoreEl.textContent = '⭐ Puncte: ' + score; nextBtn.style.display = 'block'; }); }); nextBtn.addEventListener('click', function () { current++; if (current >= words.length) { finish(); } else { render(); } }); function finish() { barEl.style.width = '100%'; counterEl.textContent = 'Joc terminat! 50 de cuvinte 🎊'; wordEl.textContent = 'Super! 🦔'; translationEl.textContent = 'Ai terminat toate cele 50 de întrebări!'; optionsEl.style.display = 'none'; nextBtn.style.display = 'none'; feedbackEl.textContent = ''; scoreEl.textContent = '⭐ Rezultat: ' + score + ' din ' + words.length; let message = score >= 45 ? 'Excelent! Ești un campion al articolelor!' : score >= 35 ? 'Foarte bine! Mai exersează puțin!' : score >= 25 ? 'Bun început! Continuă să înveți!' : 'Nu renunța! Joacă din nou și învață articolele!'; resultEl.textContent = message; if (mistakes.length) { const heading = document.createElement('p'); heading.textContent = 'Cuvinte de repetat:'; resultEl.appendChild(heading); const list = document.createElement('ul'); list.style.textAlign = 'left'; mistakes.forEach(item => { const li = document.createElement('li'); li.textContent = item[0] + ' ' + item[1] + ' — ' + item[2]; list.appendChild(li); }); resultEl.appendChild(list); } } game.querySelector('#kz-restart').addEventListener('click', function () { current = 0; score = 0; mistakes = []; order = words.map((_, i) => i); for (let i = order.length - 1; i > 0; i--) { const j = Math.floor(Math.random() * (i + 1)); [order[i], order[j]] = [order[j], order[i]]; } optionsEl.style.display = 'flex'; render(); }); order = words.map((_, i) => i); for (let i = order.length - 1; i > 0; i--) { const j = Math.floor(Math.random() * (i + 1)); [order[i], order[j]] = [order[j], order[i]]; } render(); })();