lesson 3
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,2 +1 @@
|
||||
/.idea/php.xml
|
||||
/.idea/vcs.xml
|
||||
/.idea
|
||||
2
NOTES.md
2
NOTES.md
@@ -30,3 +30,5 @@ Priority order:
|
||||
- Interleave listening + reading + writing practice, not just grammar drills
|
||||
- Space repetition of weak-spot patterns across lessons
|
||||
- Vocabulary scope: everyday German life, NOT just tech. Priority contexts: Zahnarzt, Kinderarzt, Friseur, Zahnreinigung, restaurant reservations, Ölwechsel, TÜV — the admin and social interactions of living in Germany
|
||||
- Sometimes prefers chat-based quizzing over HTML lessons for diagnostic/testing sessions
|
||||
- Cannot identify which case (Nominativ/Akkusativ/Dativ/Genitiv) to use — raised explicitly as a Goethe class struggle. This is the root cause of recurring accusative ending errors.
|
||||
|
||||
30
learning-records/0003-diagnostic-session-gaps.md
Normal file
30
learning-records/0003-diagnostic-session-gaps.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# Diagnostic Session: Key Gaps Identified
|
||||
|
||||
A chat-based adaptive quiz and four translation exercises mapped the following pattern across multiple weak spots.
|
||||
|
||||
**Confirmed strong:**
|
||||
|
||||
- Partizip II with inseparable prefixes (*vergessen*, *erklärt*) — 2/2, no hesitation.
|
||||
- Noun gender for *-ung* words and neuter forms — mostly reliable with one slip.
|
||||
|
||||
**Confirmed gaps (priority order for next lessons):**
|
||||
|
||||
1. **Subordinate clause verb-final** — 1/3 on quiz, plus errors in two translations. The concept is known but the reflex
|
||||
is not automatic. Errors cluster around *weil* (verb left in main-clause position) and multi-verb endings (*schlafen
|
||||
gehen*).
|
||||
|
||||
2. **ob vs obwohl** — confused in translation ("I'm not sure whether..."). *ob* = whether (indirect question);
|
||||
*obwohl* = although/even though. This is a meaning distinction, not a grammar rule.
|
||||
|
||||
3. **Accusative adjective endings** — recurring across all translations: *letzten Samstag*, *einen Termin*, *den
|
||||
Zahnarzt*. The rule is known but not firing automatically under production pressure.
|
||||
|
||||
4. **Perfekt verb forms** — wrote *Einladungen* (noun) instead of *eingeladen* (Partizip II). Separable verb Partizip II
|
||||
formation (*ein-ge-laden*) needs consolidation.
|
||||
|
||||
5. **Noun gender under pressure** — *Kostenvoranschlag* (masculine) missed in the quiz; *E-Mail* (feminine) missed in
|
||||
translation. Gender is solid for suffix-rule words but shaky for memorise-only nouns.
|
||||
|
||||
**Implications:** Next lesson should drill subordinate clause word order in a production context (writing sentences, not
|
||||
just picking). *ob* vs *obwohl* warrants a dedicated mini-lesson. Accusative endings should be woven into every future
|
||||
exercise as a background check.
|
||||
455
lessons/0003-the-four-cases.html
Normal file
455
lessons/0003-the-four-cases.html
Normal file
@@ -0,0 +1,455 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Lesson 3 — The Four Cases</title>
|
||||
<link rel="stylesheet" href="../assets/style.css">
|
||||
<style>
|
||||
.case-block {
|
||||
border-left: 4px solid var(--border);
|
||||
padding: 0.75rem 1.25rem;
|
||||
margin: 1.25rem 0;
|
||||
border-radius: 0 var(--radius) var(--radius) 0;
|
||||
}
|
||||
.case-block.nom { border-color: #2e5d9e; background: #eaeefd; }
|
||||
.case-block.akk { border-color: #8b1a1a; background: #fdecea; }
|
||||
.case-block.dat { border-color: #1e6b3c; background: var(--green-bg); }
|
||||
.case-block.gen { border-color: #7a5c00; background: #fdf8e8; }
|
||||
|
||||
.case-label {
|
||||
font-size: 0.75rem;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.08em;
|
||||
font-weight: bold;
|
||||
margin-bottom: 0.3rem;
|
||||
}
|
||||
.nom .case-label { color: #1d3f6e; }
|
||||
.akk .case-label { color: #8b1a1a; }
|
||||
.dat .case-label { color: #1e6b3c; }
|
||||
.gen .case-label { color: #7a5c00; }
|
||||
|
||||
.case-question {
|
||||
font-size: 1.1rem;
|
||||
font-weight: bold;
|
||||
margin-bottom: 0.25rem;
|
||||
}
|
||||
|
||||
.case-example {
|
||||
font-family: 'Courier New', monospace;
|
||||
font-size: 0.92rem;
|
||||
margin-top: 0.4rem;
|
||||
}
|
||||
|
||||
.article-table td, .article-table th {
|
||||
text-align: center;
|
||||
padding: 0.5rem 1rem;
|
||||
}
|
||||
.article-table td:first-child, .article-table th:first-child {
|
||||
text-align: left;
|
||||
}
|
||||
.nom-col { color: #2e5d9e; font-weight: bold; }
|
||||
.akk-col { color: #8b1a1a; font-weight: bold; }
|
||||
.dat-col { color: #1e6b3c; font-weight: bold; }
|
||||
.gen-col { color: #7a5c00; font-weight: bold; }
|
||||
|
||||
.changed {
|
||||
background: #fffbe6;
|
||||
border-radius: 3px;
|
||||
padding: 0 2px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.sentence-diagram {
|
||||
background: white;
|
||||
border: 1px solid var(--border);
|
||||
border-radius: var(--radius);
|
||||
padding: 1rem 1.5rem;
|
||||
margin: 1rem 0;
|
||||
font-family: 'Courier New', monospace;
|
||||
font-size: 0.95rem;
|
||||
line-height: 2;
|
||||
}
|
||||
.label-nom { color: #2e5d9e; font-size: 0.75rem; display: block; }
|
||||
.label-akk { color: #8b1a1a; font-size: 0.75rem; display: block; }
|
||||
.label-dat { color: #1e6b3c; font-size: 0.75rem; display: block; }
|
||||
.word-group { display: inline-block; text-align: center; margin: 0 0.5rem; vertical-align: top; }
|
||||
|
||||
.tip-box {
|
||||
background: var(--bg-warm);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: var(--radius);
|
||||
padding: 0.9rem 1.25rem;
|
||||
margin: 1.25rem 0;
|
||||
font-size: 0.95rem;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="page">
|
||||
|
||||
<p class="subtitle">Lesson 3 of your German course</p>
|
||||
<h1>The Four Cases: What They Are and How to Spot Them</h1>
|
||||
<p class="subtitle">B1.2 · Grammar · ~25 minutes</p>
|
||||
|
||||
<p>
|
||||
Cases in German tell you what role a noun is playing in the sentence. Once you can identify the role, you know which article ending to use — and those endings stop feeling random. There are four cases.
|
||||
</p>
|
||||
|
||||
<!-- NOMINATIV -->
|
||||
<div class="case-block nom">
|
||||
<div class="case-label">Nominativ</div>
|
||||
<div class="case-question">Who or what is doing the action?</div>
|
||||
<p style="margin: 0.4rem 0 0;">The subject of the sentence. Every sentence has one.</p>
|
||||
<div class="case-example">
|
||||
<strong>Der Arzt</strong> ruft mich an. → The doctor calls me.<br>
|
||||
<strong>Die Schule</strong> ist morgen zu. → The school is closed tomorrow.<br>
|
||||
<strong>Das Kind</strong> schläft. → The child is sleeping.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- AKKUSATIV -->
|
||||
<div class="case-block akk">
|
||||
<div class="case-label">Akkusativ</div>
|
||||
<div class="case-question">Who or what is directly affected by the action?</div>
|
||||
<p style="margin: 0.4rem 0 0;">The direct object — what the verb is acting on.</p>
|
||||
<div class="case-example">
|
||||
Ich rufe <strong>den Arzt</strong> an. → I call <em>the doctor</em>.<br>
|
||||
Wir brauchen <strong>einen Termin</strong>. → We need <em>an appointment</em>.<br>
|
||||
Er hat <strong>das Formular</strong> ausgefüllt. → He filled in <em>the form</em>.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- DATIV -->
|
||||
<div class="case-block dat">
|
||||
<div class="case-label">Dativ</div>
|
||||
<div class="case-question">To whom or for whom?</div>
|
||||
<p style="margin: 0.4rem 0 0;">The indirect object — the recipient or beneficiary. Also required after certain prepositions (<em>mit, bei, nach, von, zu, aus, seit, gegenüber</em>).</p>
|
||||
<div class="case-example">
|
||||
Ich gebe <strong>dem Arzt</strong> die Überweisung. → I give <em>the doctor</em> the referral.<br>
|
||||
Wir wohnen <strong>bei dem</strong> (<strong>beim</strong>) Bäcker. → We live near <em>the bakery</em>.<br>
|
||||
Sie fährt <strong>mit dem</strong> Auto. → She's driving <em>the car</em>.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- GENITIV -->
|
||||
<div class="case-block gen">
|
||||
<div class="case-label">Genitiv</div>
|
||||
<div class="case-question">Whose? Of what?</div>
|
||||
<p style="margin: 0.4rem 0 0;">Shows possession or belonging. Common in writing; in spoken German <em>von + Dativ</em> is often used instead.</p>
|
||||
<div class="case-example">
|
||||
Das ist das Auto <strong>des Kollegen</strong>. → That's <em>the colleague's</em> car.<br>
|
||||
Die Adresse <strong>der Schule</strong>. → <em>The school's</em> address.<br>
|
||||
(spoken alternative: die Adresse <strong>von der Schule</strong>)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2>How the articles change</h2>
|
||||
|
||||
<p>Only the article changes — the noun itself almost never changes. Here are the definite articles (<em>der/die/das</em>) across all four cases:</p>
|
||||
|
||||
<table class="article-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>masculine</th>
|
||||
<th>feminine</th>
|
||||
<th>neuter</th>
|
||||
<th>plural</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><span class="nom-col">Nominativ</span></td>
|
||||
<td>der</td>
|
||||
<td>die</td>
|
||||
<td>das</td>
|
||||
<td>die</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><span class="akk-col">Akkusativ</span></td>
|
||||
<td><span class="changed">den</span></td>
|
||||
<td>die</td>
|
||||
<td>das</td>
|
||||
<td>die</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><span class="dat-col">Dativ</span></td>
|
||||
<td><span class="changed">dem</span></td>
|
||||
<td><span class="changed">der</span></td>
|
||||
<td><span class="changed">dem</span></td>
|
||||
<td><span class="changed">den</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><span class="gen-col">Genitiv</span></td>
|
||||
<td><span class="changed">des</span></td>
|
||||
<td><span class="changed">der</span></td>
|
||||
<td><span class="changed">des</span></td>
|
||||
<td><span class="changed">der</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div class="tip-box">
|
||||
<strong>The one thing worth memorising first:</strong> only masculine changes in Akkusativ: <em>der → <strong>den</strong></em>. Feminine, neuter, and plural stay the same. This is why <em>den Arzt</em>, <em>einen Termin</em>, <em>den Ölwechsel</em> — all masculine accusative.
|
||||
</div>
|
||||
|
||||
<p>The indefinite articles (<em>ein/eine</em>) follow the same pattern:</p>
|
||||
|
||||
<table class="article-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>masculine</th>
|
||||
<th>feminine</th>
|
||||
<th>neuter</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><span class="nom-col">Nominativ</span></td>
|
||||
<td>ein</td>
|
||||
<td>eine</td>
|
||||
<td>ein</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><span class="akk-col">Akkusativ</span></td>
|
||||
<td><span class="changed">einen</span></td>
|
||||
<td>eine</td>
|
||||
<td>ein</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><span class="dat-col">Dativ</span></td>
|
||||
<td><span class="changed">einem</span></td>
|
||||
<td><span class="changed">einer</span></td>
|
||||
<td><span class="changed">einem</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h2>How to identify the case in a real sentence</h2>
|
||||
|
||||
<p>Ask these questions in order:</p>
|
||||
|
||||
<ol style="margin: 1rem 0 1rem 1.5rem; line-height: 2;">
|
||||
<li><strong>Who is doing the action?</strong> → Nominativ</li>
|
||||
<li><strong>What is the verb directly acting on?</strong> → Akkusativ</li>
|
||||
<li><strong>To/for whom?</strong> → Dativ</li>
|
||||
<li><strong>Is there a preposition?</strong> → look up whether it takes Akkusativ or Dativ (or both)</li>
|
||||
</ol>
|
||||
|
||||
<div class="sentence-diagram">
|
||||
<div class="word-group">
|
||||
<span>Der Mechaniker</span>
|
||||
<span class="label-nom">Nominativ (subject)</span>
|
||||
</div>
|
||||
<div class="word-group">
|
||||
<span>zeigt</span>
|
||||
</div>
|
||||
<div class="word-group">
|
||||
<span>mir</span>
|
||||
<span class="label-dat">Dativ (to me)</span>
|
||||
</div>
|
||||
<div class="word-group">
|
||||
<span>den Kostenvoranschlag.</span>
|
||||
<span class="label-akk">Akkusativ (direct object)</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p style="font-size: 0.9rem; color: var(--ink-light);">The mechanic shows <em>me</em> the cost estimate. — Three roles at once.</p>
|
||||
|
||||
<h2>Prepositions that fix the case</h2>
|
||||
|
||||
<p>Some prepositions always take the same case. These are worth knowing cold:</p>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Always Akkusativ</th>
|
||||
<th>Always Dativ</th>
|
||||
<th>Two-way (location/direction)</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>durch, für, gegen, ohne, um</code></td>
|
||||
<td><code>aus, bei, mit, nach, seit, von, zu, gegenüber</code></td>
|
||||
<td><code>an, auf, hinter, in, neben, über, unter, vor, zwischen</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="font-size:0.85rem; color: var(--ink-light);">
|
||||
Er wartet <em>ohne</em> <strong>den</strong> Arzt.
|
||||
</td>
|
||||
<td style="font-size:0.85rem; color: var(--ink-light);">
|
||||
Ich fahre <em>mit</em> <strong>dem</strong> Auto.
|
||||
</td>
|
||||
<td style="font-size:0.85rem; color: var(--ink-light);">
|
||||
<em>in</em> <strong>dem</strong> Zimmer (where?) vs <em>in</em> <strong>das</strong> Zimmer (going where?)
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="tip-box">
|
||||
<strong>Two-way prepositions:</strong> location (staying in a place) → Dativ. Direction (moving toward a place) → Akkusativ. <em>Ich bin im (in dem) Wartezimmer</em> vs. <em>Ich gehe in das Wartezimmer.</em>
|
||||
</div>
|
||||
|
||||
<hr style="border:none; border-top: 1px solid #ddd; margin: 2.5rem 0;">
|
||||
|
||||
<h2>Drill — which case is needed?</h2>
|
||||
|
||||
<p>For each sentence, choose the correct form.</p>
|
||||
|
||||
<div class="quiz-section" id="quiz"></div>
|
||||
|
||||
<div class="score-bar" id="score-bar">
|
||||
<span class="score-number" id="score-number"></span> — <span id="score-comment"></span>
|
||||
</div>
|
||||
|
||||
<h2>Primary source</h2>
|
||||
|
||||
<p>
|
||||
<a href="https://www.dw.com/de/deutsche-f%C3%A4lle-nominativ-akkusativ-dativ-und-genitiv/a-38296307" target="_blank">Deutsche Welle: Die vier Fälle</a> — a clear explanation with examples, directly from DW's German course. Read it after finishing this lesson.
|
||||
</p>
|
||||
|
||||
<div class="ask-teacher">
|
||||
<strong>Ask your teacher:</strong> If a sentence confuses you — from class, from a sign, from a work email — bring it here and ask which case is at work and why. Seeing it in real sentences is what builds the reflex.
|
||||
</div>
|
||||
|
||||
<div class="lesson-nav">
|
||||
<strong>Related:</strong>
|
||||
<a href="0001-v2-word-order.html">Lesson 1: V2 Word Order</a> ·
|
||||
<a href="0002-noun-gender-daily-life.html">Lesson 2: Noun Gender</a> ·
|
||||
<a href="../reference/daily-life-nouns.html">Daily Life Nouns Reference</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const questions = [
|
||||
{
|
||||
sentence: "Ich rufe ___ Zahnarzt an.",
|
||||
correct: "den",
|
||||
options: ["der", "den", "dem"],
|
||||
feedback: "<strong>Akkusativ</strong> — direct object of <em>anrufen</em>. <em>der Zahnarzt</em> is masculine → accusative → <strong>den</strong>."
|
||||
},
|
||||
{
|
||||
sentence: "___ Termin ist um 10 Uhr.",
|
||||
correct: "Der",
|
||||
options: ["Der", "Den", "Dem"],
|
||||
feedback: "<strong>Nominativ</strong> — the appointment is the subject (it <em>is</em> at 10). <em>der Termin</em> → nominative → <strong>Der</strong>."
|
||||
},
|
||||
{
|
||||
sentence: "Ich fahre mit ___ Auto zur Werkstatt.",
|
||||
correct: "dem",
|
||||
options: ["das", "den", "dem"],
|
||||
feedback: "<strong>Dativ</strong> — <em>mit</em> always takes Dativ. <em>das Auto</em> is neuter → dative → <strong>dem</strong>."
|
||||
},
|
||||
{
|
||||
sentence: "Er gibt ___ Mechaniker den Schlüssel.",
|
||||
correct: "dem",
|
||||
options: ["der", "den", "dem"],
|
||||
feedback: "<strong>Dativ</strong> — the mechanic is the indirect object (he's giving the key <em>to</em> the mechanic). <em>der Mechaniker</em> → dative masculine → <strong>dem</strong>."
|
||||
},
|
||||
{
|
||||
sentence: "Das Kind geht in ___ Schule.",
|
||||
correct: "die",
|
||||
options: ["der", "die", "dem"],
|
||||
feedback: "<strong>Akkusativ</strong> — <em>in</em> is a two-way preposition. Going <em>into</em> a place → direction → Akkusativ. <em>die Schule</em> is feminine → accusative → <strong>die</strong> (feminine doesn't change)."
|
||||
},
|
||||
{
|
||||
sentence: "Das Kind ist in ___ Schule.",
|
||||
correct: "der",
|
||||
options: ["der", "die", "dem"],
|
||||
feedback: "<strong>Dativ</strong> — <em>in</em> is two-way. Staying <em>in</em> a place → location → Dativ. <em>die Schule</em> is feminine → dative → <strong>der</strong>."
|
||||
},
|
||||
{
|
||||
sentence: "Wir brauchen ___ Überweisung vom Hausarzt.",
|
||||
correct: "eine",
|
||||
options: ["einen", "eine", "ein"],
|
||||
feedback: "<strong>Akkusativ</strong> — direct object of <em>brauchen</em>. <em>die Überweisung</em> is feminine → accusative → <strong>eine</strong> (feminine doesn't change in accusative)."
|
||||
},
|
||||
{
|
||||
sentence: "___ Kollege hat mir die E-Mail geschickt.",
|
||||
correct: "Ein",
|
||||
options: ["Ein", "Einen", "Einem"],
|
||||
feedback: "<strong>Nominativ</strong> — the colleague is the subject (he <em>sent</em> the email). <em>der Kollege</em> → nominative → <strong>Ein</strong>."
|
||||
},
|
||||
{
|
||||
sentence: "Ich warte seit ___ Stunde.",
|
||||
correct: "einer",
|
||||
options: ["eine", "einer", "einen"],
|
||||
feedback: "<strong>Dativ</strong> — <em>seit</em> always takes Dativ. <em>die Stunde</em> is feminine → dative → <strong>einer</strong>."
|
||||
},
|
||||
{
|
||||
sentence: "Er hat ___ Kostenvoranschlag bekommen.",
|
||||
correct: "einen",
|
||||
options: ["einen", "eine", "ein"],
|
||||
feedback: "<strong>Akkusativ</strong> — direct object of <em>bekommen</em>. <em>der Kostenvoranschlag</em> is masculine → accusative → <strong>einen</strong>."
|
||||
}
|
||||
];
|
||||
|
||||
const quiz = document.getElementById('quiz');
|
||||
let answered = 0;
|
||||
let correct = 0;
|
||||
const total = questions.length;
|
||||
|
||||
questions.forEach((q, i) => {
|
||||
const block = document.createElement('div');
|
||||
block.className = 'question-block';
|
||||
block.id = 'q' + i;
|
||||
|
||||
const displaySentence = q.sentence.replace('___ ', '<span style="display:inline-block;min-width:55px;border-bottom:2px solid #aaa;"> </span> ');
|
||||
|
||||
block.innerHTML = `
|
||||
<div class="question-text"><strong>${i + 1}.</strong> ${displaySentence}</div>
|
||||
<div class="options" style="flex-direction:row;flex-wrap:wrap;gap:0.5rem;">
|
||||
${q.options.map(opt => `<button class="option-btn" style="flex:1;min-width:70px;text-align:center;" onclick="answer(${i},'${opt}',this)">${opt}</button>`).join('')}
|
||||
</div>
|
||||
<div class="feedback" id="fb${i}"></div>
|
||||
`;
|
||||
quiz.appendChild(block);
|
||||
});
|
||||
|
||||
function answer(i, chosen, btn) {
|
||||
const q = questions[i];
|
||||
const block = document.getElementById('q' + i);
|
||||
const fb = document.getElementById('fb' + i);
|
||||
const buttons = block.querySelectorAll('.option-btn');
|
||||
buttons.forEach(b => b.disabled = true);
|
||||
|
||||
const isCorrect = chosen === q.correct;
|
||||
answered++;
|
||||
if (isCorrect) {
|
||||
correct++;
|
||||
block.classList.add('correct');
|
||||
btn.classList.add('selected-correct');
|
||||
fb.className = 'feedback show correct-fb';
|
||||
fb.innerHTML = '✓ ' + q.feedback;
|
||||
} else {
|
||||
block.classList.add('incorrect');
|
||||
btn.classList.add('selected-incorrect');
|
||||
fb.className = 'feedback show incorrect-fb';
|
||||
fb.innerHTML = '✗ ' + q.feedback;
|
||||
buttons.forEach(b => { if (b.textContent.trim() === q.correct) b.classList.add('reveal-correct'); });
|
||||
}
|
||||
|
||||
if (answered === total) showScore();
|
||||
}
|
||||
|
||||
function showScore() {
|
||||
const bar = document.getElementById('score-bar');
|
||||
const num = document.getElementById('score-number');
|
||||
const comment = document.getElementById('score-comment');
|
||||
bar.classList.add('show');
|
||||
num.textContent = correct + ' / ' + total;
|
||||
if (correct === total) {
|
||||
comment.textContent = 'All ten — the case logic is clicking. Now use it in writing.';
|
||||
} else if (correct >= 8) {
|
||||
comment.textContent = 'Strong. Re-read the feedback on the ones you missed — they usually point to one specific rule.';
|
||||
} else if (correct >= 6) {
|
||||
comment.textContent = 'The framework is forming. Run the drill again tomorrow and watch for the two-way prepositions.';
|
||||
} else {
|
||||
comment.textContent = 'Reread the four case blocks above slowly, then try again. The key is asking the right question for each noun.';
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user