<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Whānau Matching Exercise</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #fff;
padding: 20px;
max-width: 900px;
margin: auto;
font-size: 125%;
}
h2 {
color: #c71585;
}
.question {
display: flex;
align-items: center;
margin-bottom: 12px;
}
.question label {
flex: 1;
margin-right: 10px;
}
select {
font-size: 100%;
padding: 4px;
}
.feedback {
margin-left: 10px;
font-weight: bold;
}
.correct {
color: green;
}
.incorrect {
color: red;
}
</style>
</head>
<body>
<h2>Whānau Matching Exercise</h2>
<p>Choose the correct English meaning for each te reo Māori phrase. Feedback will appear instantly.</p>
<div id="quiz"></div>
<script>
const questions = [
{ maori: "Ko Hōne tōku pāpā.", options: ["Mere is my mum.", "Hōne is my dad.", "Hōne is my uncle.", "I live with my parents."], correct: "Hōne is my dad." },
{ maori: "Tamariki", options: ["Parents", "Children", "Cousins", "Grandparents"], correct: "Children" },
{ maori: "Tōku whare", options: ["My house", "My book", "My job", "My pet"], correct: "My house" },
{ maori: "Tāku mahi", options: ["My school", "My job", "My car", "My uncle"], correct: "My job" },
{ maori: "Whaea kēkē", options: ["Aunt (parent’s sister)", "Grandmother", "Cousin", "Sister"], correct: "Aunt (parent’s sister)" },
{ maori: "Tōku tinana", options: ["My child", "My body", "My phone", "My table"], correct: "My body" },
{ maori: "Tāku kurī", options: ["My dog (pet)", "My car", "My cousin", "My teacher"], correct: "My dog (pet)" },
{ maori: "Ko Ani tōku tuahine.", options: ["Ani is my sister (said by a boy)", "Ani is my cousin", "Ani is my niece", "Ani is my grandmother"], correct: "Ani is my sister (said by a boy)" },
{ maori: "Whānau", options: ["Family", "School", "Shelter", "Friend"], correct: "Family" },
{ maori: "Tamariki mokopuna", options: ["Grandchildren", "Great-grandchildren", "Nieces and nephews", "Parents"], correct: "Great-grandchildren" }
];
const quizDiv = document.getElementById("quiz");
questions.forEach((q, index) => {
const div = document.createElement("div");
div.className = "question";
div.innerHTML = `
<label for="q${index}"><strong>${index + 1}. ${q.maori}</strong></label>
<select id="q${index}" onchange="checkAnswer(${index})">
<option value="">-- Select --</option>
${q.options.map(opt => `<option value="${opt}">${opt}</option>`).join("")}
</select>
<span id="feedback${index}" class="feedback"></span>
`;
quizDiv.appendChild(div);
});
function checkAnswer(index) {
const selected = document.getElementById(`q${index}`).value;
const correct = questions[index].correct;
const feedback = document.getElementById(`feedback${index}`);
if (selected === correct) {
feedback.textContent = "✓ Correct";
feedback.className = "feedback correct";
} else {
feedback.textContent = "✗ Incorrect";
feedback.className = "feedback incorrect";
}
}
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="mi">
<head>
<meta charset="UTF-8" />
<title>Wāhanga Matching</title>
<style>
body { font-family: Arial, sans-serif; background: #f9f9ff; padding: 20px; }
h2 { color: #333366; margin-top: 0; }
table { border-collapse: collapse; width: 100%; margin: 16px 0; }
th, td { border: 1px solid #ccc; padding: 10px; vertical-align: middle; }
th { background: #eef; text-align: left; }
select { padding: 6px; font-size: 1em; width: 100%; max-width: 550px; }
button { padding: 10px 16px; margin-right: 8px; border: none; border-radius: 8px; cursor: pointer; font-size: 1em; }
#markBtn { background-color: #4CAF50; color: white; }
#resetBtn { background-color: #d9534f; color: white; }
.correct { background-color: #c8f7c5; }
.incorrect { background-color: #f7c5c5; }
.hint { color: #555; font-size: 0.95em; }
#score { margin-top: 8px; font-weight: bold; }
</style>
</head>
<body>
<h2>Match the kupu to its meaning/examples</h2>
<p class="hint">Kōwhiria te tikanga tika. Ka ngaro te kōwhiringa i ērā atu rārangi ina tīpakohia. Pāwhiri <em>Mark</em> hei arotake, <em>Reset</em> hei tīmata anō (ka whakararuahia anō ngā kōwhiringa).</p>
<table id="matchingTable">
<tr><th>Māori + English heading</th><th>Choose meaning/examples</th></tr>
</table>
<button id="markBtn">Mark</button>
<button id="resetBtn">Reset</button>
<div id="score" aria-live="polite"></div>
<script>
// ----- Data -----
const pairs = [
{ leftMi: "Wāhanga", leftEn: "Parts", right: "body parts, parts of buildings" },
{ leftMi: "Whanaunga", leftEn: "Relatives", right: "parents, grandparents, siblings" },
{ leftMi: "Whakaruruhau", leftEn: "Shelter/Protection", right: "house, school, teachers" },
{ leftMi: "Wāhi", leftEn: "Places", right: "towns, cities, countries" },
{ leftMi: "Whakaahua", leftEn: "Qualities", right: "personal qualities, traits" },
{ leftMi: "Whakarākei", leftEn: "Adornments", right: "clothes, jewelry (things you wear or put on)" },
{ leftMi: "Waka", leftEn: "Transport", right: "cars, boats (means of transport)" },
{ leftMi: "Whakaora", leftEn: "Beneficial things", right: "medicine, remedies" }
];
// ----- Helpers -----
function shuffle(arr) {
const a = arr.slice();
for (let i = a.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[a[i], a[j]] = [a[j], a[i]];
}
return a;
}
const table = document.getElementById("matchingTable");
const score = document.getElementById("score");
function buildTable() {
// Clear existing rows except header
table.querySelectorAll("tr:not(:first-child)").forEach(tr => tr.remove());
score.textContent = "";
// Build a single shuffled list of right-hand options for all dropdowns
const allOptions = shuffle(pairs.map(p => p.right));
pairs.forEach((p, idx) => {
const row = document.createElement("tr");
const left = document.createElement("td");
left.textContent = `${p.leftMi} (${p.leftEn})`;
const right = document.createElement("td");
const select = document.createElement("select");
select.setAttribute("aria-label", `Choose meaning for ${p.leftMi} (${p.leftEn})`);
select.dataset.correct = p.right;
// Randomised options + placeholder
select.innerHTML = `<option value="">-- Select --</option>` +
allOptions.map(o => `<option value="${o}">${o}</option>`).join("");
select.addEventListener("change", updateDropdowns);
right.appendChild(select);
row.appendChild(left);
row.appendChild(right);
table.appendChild(row);
});
updateDropdowns(); // ensure initial state is clean
}
function updateDropdowns() {
const selects = Array.from(document.querySelectorAll("#matchingTable select"));
const chosen = selects.map(s => s.value).filter(v => v !== "");
selects.forEach(sel => {
const current = sel.value;
Array.from(sel.options).forEach(opt => {
if (!opt.value) return; // keep placeholder visible
// Hide options already chosen elsewhere; keep the current choice visible in its own dropdown
if (chosen.includes(opt.value) && opt.value !== current) {
opt.style.display = "none";
} else {
opt.style.display = "block";
}
});
});
}
document.getElementById("markBtn").addEventListener("click", () => {
const selects = document.querySelectorAll("#matchingTable select");
let correctCount = 0, attempted = 0;
selects.forEach(sel => {
sel.classList.remove("correct", "incorrect");
if (sel.value) {
attempted++;
if (sel.value === sel.dataset.correct) {
sel.classList.add("correct");
correctCount++;
} else {
sel.classList.add("incorrect");
}
}
});
const total = selects.length;
if (attempted === 0) {
score.textContent = "No answers selected yet.";
} else {
score.textContent = `Score: ${correctCount} / ${total}`;
}
});
document.getElementById("resetBtn").addEventListener("click", () => {
buildTable(); // rebuilds and re-shuffles the dropdown order
});
// Initial render
buildTable();
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="mi">
<head>
<meta charset="UTF-8" />
<title>Wāhanga Matching</title>
<style>
body { font-family: Arial, sans-serif; background: #f9f9ff; padding: 20px; }
h2 { color: #333366; margin-top: 0; }
table { border-collapse: collapse; width: 100%; margin: 16px 0; }
th, td { border: 1px solid #ccc; padding: 10px; vertical-align: middle; }
th { background: #eef; text-align: left; }
select { padding: 6px; font-size: 1em; width: 100%; max-width: 300px; }
button { padding: 10px 16px; margin-right: 8px; border: none; border-radius: 8px; cursor: pointer; font-size: 1em; }
#markBtn { background-color: #4CAF50; color: white; }
#resetBtn { background-color: #d9534f; color: white; }
.correct { background-color: #c8f7c5; }
.incorrect { background-color: #f7c5c5; }
#score { margin-top: 8px; font-weight: bold; }
</style>
</head>
<body>
<h2>Match the kupu to its English category and meaning</h2>
<table id="matchingTable">
<tr>
<th>Māori kupu</th>
<th>English category</th>
<th>Examples/Meaning</th>
</tr>
</table>
<button id="markBtn">Mark</button>
<button id="resetBtn">Reset</button>
<div id="score" aria-live="polite"></div>
<script>
// ----- Data -----
const pairs = [
{ mi: "Wāhanga", en: "Parts", right: "body parts, parts of buildings" },
{ mi: "Whanaunga", en: "Relatives", right: "parents, grandparents, siblings" },
{ mi: "Whakaruruhau", en: "Shelter/Protection", right: "house, school, teachers" },
{ mi: "Wāhi", en: "Places", right: "towns, cities, countries" },
{ mi: "Whakaahua", en: "Qualities", right: "personal qualities, traits" },
{ mi: "Whakarākei", en: "Adornments", right: "clothes, jewelry (things you wear or put on)" },
{ mi: "Waka", en: "Transport", right: "cars, boats (means of transport)" },
{ mi: "Whakaora", en: "Beneficial things", right: "medicine, remedies" }
];
// ----- Helpers -----
function shuffle(arr) {
const a = arr.slice();
for (let i = a.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[a[i], a[j]] = [a[j], a[i]];
}
return a;
}
const table = document.getElementById("matchingTable");
const score = document.getElementById("score");
function buildTable() {
// clear existing rows except header
table.querySelectorAll("tr:not(:first-child)").forEach(tr => tr.remove());
score.textContent = "";
const catOptions = shuffle(pairs.map(p => p.en));
const rightOptions = shuffle(pairs.map(p => p.right));
pairs.forEach(p => {
const row = document.createElement("tr");
// Māori kupu
const left = document.createElement("td");
left.textContent = p.mi;
// English category dropdown
const mid = document.createElement("td");
const selCat = document.createElement("select");
selCat.dataset.correct = p.en;
selCat.innerHTML = `<option value="">-- Select --</option>` +
catOptions.map(c => `<option value="${c}">${c}</option>`).join("");
mid.appendChild(selCat);
// Examples dropdown
const right = document.createElement("td");
const selRight = document.createElement("select");
selRight.dataset.correct = p.right;
selRight.innerHTML = `<option value="">-- Select --</option>` +
rightOptions.map(r => `<option value="${r}">${r}</option>`).join("");
right.appendChild(selRight);
row.appendChild(left);
row.appendChild(mid);
row.appendChild(right);
table.appendChild(row);
});
updateDropdowns();
}
// prevent duplicate selections
function updateDropdowns() {
["td:nth-child(2) select", "td:nth-child(3) select"].forEach(selector => {
const selects = Array.from(document.querySelectorAll(selector));
const chosen = selects.map(s => s.value).filter(v => v !== "");
selects.forEach(sel => {
const current = sel.value;
Array.from(sel.options).forEach(opt => {
if (!opt.value) return;
if (chosen.includes(opt.value) && opt.value !== current) {
opt.style.display = "none";
} else {
opt.style.display = "block";
}
});
});
});
}
document.getElementById("markBtn").addEventListener("click", () => {
const selects = document.querySelectorAll("#matchingTable select");
let correctCount = 0;
selects.forEach(sel => {
sel.classList.remove("correct","incorrect");
if (sel.value) {
if (sel.value === sel.dataset.correct) {
sel.classList.add("correct");
correctCount++;
} else {
sel.classList.add("incorrect");
}
}
});
score.textContent = `Correct: ${correctCount} / ${selects.length}`;
});
document.getElementById("resetBtn").addEventListener("click", buildTable);
// init
buildTable();
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Whānau Matching Exercise – Set 2</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #fff;
padding: 20px;
max-width: 900px;
margin: auto;
font-size: 125%;
}
h2 {
color: #c71585;
}
.question {
display: flex;
align-items: center;
margin-bottom: 12px;
}
.question label {
flex: 1;
margin-right: 10px;
}
select {
font-size: 100%;
padding: 4px;
}
.feedback {
margin-left: 10px;
font-weight: bold;
}
.correct {
color: green;
}
.incorrect {
color: red;
}
</style>
</head>
<body>
<h2>Whānau Matching Exercise – Set 2</h2>
<p>Choose the correct English meaning for each te reo Māori phrase. Feedback will appear instantly.</p>
<div id="quiz"></div>
<script>
const questions = [
{ maori: "Ko Tui tōku kuia.", options: ["Tui is my cousin.", "Tui is my grandmother.", "Tui is my sister.", "Tui is my aunt."], correct: "Tui is my grandmother." },
{ maori: "Ko Hēmi tōku koroua.", options: ["Hēmi is my grandfather.", "Hēmi is my uncle.", "Hēmi is my brother.", "Hēmi is my dad."], correct: "Hēmi is my grandfather." },
{ maori: "E noho ana au ki te kāinga me ōku mātua.", options: ["I live with my children.", "I live at home with my parents.", "I live with my cousins.", "I live with my grandparents."], correct: "I live at home with my parents." },
{ maori: "He mokopuna au nā tōku kuia.", options: ["I am a niece of my grandmother.", "I am a cousin of my grandmother.", "I am a grandchild of my grandmother.", "I am a sibling of my grandmother."], correct: "I am a grandchild of my grandmother." },
{ maori: "E tākaro ana ahau me tāku tungāne.", options: ["I’m playing with my cousin.", "I’m playing with my brother.", "I’m playing with my uncle.", "I’m playing with my son."], correct: "I’m playing with my brother." },
{ maori: "I haere au ki te whare o tōku whaea kēkē.", options: ["I went to my aunt’s house.", "I went to my cousin’s house.", "I went to my grandmother’s house.", "I went to my sister’s house."], correct: "I went to my aunt’s house." },
{ maori: "Ko Matiu tōku hoa rangatira.", options: ["Matiu is my teacher.", "Matiu is my friend.", "Matiu is my partner/spouse.", "Matiu is my cousin."], correct: "Matiu is my partner/spouse." },
{ maori: "Tāku pukapuka", options: ["My book", "My school", "My house", "My car"], correct: "My book" },
{ maori: "Tōku waka", options: ["My apple", "My car", "My pet", "My job"], correct: "My car" },
{ maori: "Tāku rorohiko", options: ["My computer", "My phone", "My table", "My umbrella"], correct: "My computer" }
];
const quizDiv = document.getElementById("quiz");
questions.forEach((q, index) => {
const div = document.createElement("div");
div.className = "question";
div.innerHTML = `
<label for="q${index}"><strong>${index + 1}. ${q.maori}</strong></label>
<select id="q${index}" onchange="checkAnswer(${index})">
<option value="">-- Select --</option>
${q.options.map(opt => `<option value="${opt}">${opt}</option>`).join("")}
</select>
<span id="feedback${index}" class="feedback"></span>
`;
quizDiv.appendChild(div);
});
function checkAnswer(index) {
const selected = document.getElementById(`q${index}`).value;
const correct = questions[index].correct;
const feedback = document.getElementById(`feedback${index}`);
if (selected === correct) {
feedback.textContent = "✓ Correct";
feedback.className = "feedback correct";
} else {
feedback.textContent = "✗ Incorrect";
feedback.className = "feedback incorrect";
}
}
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Whānau Matching – English to Māori</title>
<style>
body {
font-family: Arial, sans-serif;
font-size: 125%;
padding: 20px;
max-width: 1000px;
margin: auto;
background-color: #fff;
}
h2 {
color: #c71585;
}
.grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 12px;
}
.question {
display: flex;
align-items: center;
margin-bottom: 10px;
}
.question label {
flex: 1;
margin-right: 10px;
}
select {
font-size: 100%;
padding: 4px;
}
.feedback {
margin-left: 10px;
font-weight: bold;
}
.correct {
color: green;
}
.incorrect {
color: red;
}
</style>
</head>
<body>
<h2>Whānau Matching – English to Māori</h2>
<p>Select the correct Māori word for each English family term. Feedback appears instantly.</p>
<div class="grid" id="quiz"></div>
<script>
const questions = [
{ english: "Ancestors", correct: "Tīpuna", options: ["Tīpuna", "Mātua", "Tamariki", "Tuakana"] },
{ english: "Grandfather", correct: "Koroua", options: ["Koroua", "Matua", "Tungāne", "Iramutu"] },
{ english: "Grandmother", correct: "Kuia", options: ["Kuia", "Whaea", "Tuahine", "Kōkā"] },
{ english: "Parents", correct: "Mātua", options: ["Mātua", "Tamariki", "Whānau", "Mokopuna"] },
{ english: "Father", correct: "Matua", options: ["Matua", "Koroua", "Tungāne", "Hoa rangatira"] },
{ english: "Mother", correct: "Whaea", options: ["Whaea", "Kuia", "Tuahine", "Whāngai"] },
{ english: "Uncle", correct: "Matua kēkē", options: ["Matua kēkē", "Koroua", "Tungāne", "Iramutu"] },
{ english: "Aunt", correct: "Whaea kēkē", options: ["Whaea kēkē", "Kuia", "Tuahine", "Kōkā"] },
{ english: "Older sibling (same gender)", correct: "Tuakana", options: ["Tuakana", "Teina", "Tungāne", "Tuahine"] },
{ english: "Younger sibling (same gender)", correct: "Teina", options: ["Teina", "Tuakana", "Tungāne", "Tuahine"] },
{ english: "Brother (female speaking)", correct: "Tungāne", options: ["Tungāne", "Tuakana", "Matua", "Iramutu"] },
{ english: "Sister (male speaking)", correct: "Tuahine", options: ["Tuahine", "Teina", "Whaea", "Kōkā"] },
{ english: "Cousin", correct: "Whanaunga", options: ["Whanaunga", "Kōkā", "Iramutu", "Tamariki"] },
{ english: "Niece or Nephew", correct: "Iramutu", options: ["Iramutu", "Tamariki", "Mokopuna", "Tuakana"] },
{ english: "Child", correct: "Tamariki", options: ["Tamariki", "Mokopuna", "Whāngai", "Tīpuna"] },
{ english: "Grandchild", correct: "Mokopuna", options: ["Mokopuna", "Iramutu", "Tamariki mokopuna", "Whāngai"] },
{ english: "Great-grandchild", correct: "Tamariki mokopuna", options: ["Tamariki mokopuna", "Mokopuna wahine", "Whāngai", "Tīpuna"] },
{ english: "Fostered/adopted child", correct: "Whāngai", options: ["Whāngai", "Tamariki", "Iramutu", "Tuakana"] },
{ english: "Spouse / Partner", correct: "Hoa rangatira", options: ["Hoa rangatira", "Matua", "Tungāne", "Whanaunga"] },
{ english: "Family", correct: "Whānau", options: ["Whānau", "Mātua", "Tamariki", "Tīpuna"] }
];
function shuffle(array) {
return array.sort(() => Math.random() - 0.5);
}
const quizDiv = document.getElementById("quiz");
questions.forEach((q, index) => {
const shuffledOptions = shuffle([...q.options]);
const div = document.createElement("div");
div.className = "question";
div.innerHTML = `
<label for="q${index}"><strong>${index + 1}. ${q.english}</strong></label>
<select id="q${index}" onchange="checkAnswer(${index}, '${q.correct}')">
<option value="">-- Select --</option>
${shuffledOptions.map(opt => `<option value="${opt}">${opt}</option>`).join("")}
</select>
<span id="feedback${index}" class="feedback"></span>
`;
quizDiv.appendChild(div);
});
function checkAnswer(index, correct) {
const selected = document.getElementById(`q${index}`).value;
const feedback = document.getElementById(`feedback${index}`);
if (selected === correct) {
feedback.textContent = "✓ Correct";
feedback.className = "feedback correct";
} else {
feedback.textContent = "✗ Incorrect";
feedback.className = "feedback incorrect";
}
}
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Possessive Pronoun Matching – Te Reo Māori</title>
<style>
body { font-family: Arial; font-size: 125%; background-color:#e6cafa; padding: 20px; max-width: 1000px; margin: auto; }
h2 { color: #6a0eeb; }
.grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.question { display: flex; align-items: center; margin-bottom: 10px; }
.question label { flex: 1; margin-right: 10px; }
select { font-size: 100%; padding: 4px; }
.feedback { margin-left: 10px; font-weight: bold; }
.correct { color: green; }
.incorrect { color: red; }
button { margin-bottom: 20px; padding: 10px 20px; font-size: 100%; }
</style>
</head>
<body>
<h2>Possessive Pronoun Matching – Te Reo Māori</h2>
<p>Select the correct Māori phrase for each English expression. Feedback appears instantly.</p>
<button onclick="generateQuiz()">Generate New Quiz</button>
<div class="grid" id="quiz"></div>
<script>
const allQuestions = [
{ english: "My House", correct: "tōku whare", options: ['tōu whare', 'ōku whare', 'tōku whare', 'tōna whare'] },
{ english: "Your House", correct: "tōu whare", options: ['ōna whare', 'tōku whare', 'tōna whare', 'tōu whare'] },
{ english: "His House", correct: "tōna whare", options: ['tōu whare', 'tōku whare', 'tōna whare', 'ōna whare'] },
{ english: "My Chair", correct: "tōku tūru", options: ['ōku tūru', 'tōu tūru', 'tōna tūru', 'tōku tūru'] },
{ english: "Your Chair", correct: "tōu tūru", options: ['ōna tūru', 'tōna tūru', 'tōku tūru', 'tōu tūru'] },
{ english: "His Chair", correct: "tōna tūru", options: ['tōna tūru', 'tōu tūru', 'tōku tūru', 'ōna tūru'] },
{ english: "My Book", correct: "tāku pukapuka", options: ['āku pukapuka', 'tāu pukapuka', 'tāku pukapuka', 'tāna pukapuka'] },
{ english: "Your Book", correct: "tāu pukapuka", options: ['āu pukapuka', 'tāna pukapuka', 'tāku pukapuka', 'tāu pukapuka'] },
{ english: "His Book", correct: "tāna pukapuka", options: ['tāna pukapuka', 'tāku pukapuka', 'tāu pukapuka', 'āna pukapuka'] },
{ english: "My School", correct: "tōku kura", options: ['tōku kura', 'ōku kura', 'tōna kura', 'tōu kura'] },
{ english: "Your School", correct: "tōu kura", options: ['ōna kura', 'tōu kura', 'tōku kura', 'tōna kura'] },
{ english: "His School", correct: "tōna kura", options: ['ōna kura', 'tōu kura', 'tōku kura', 'tōna kura'] },
{ english: "My Parent", correct: "tōku matua", options: ['tōu matua', 'tōku matua', 'tōna matua', 'ōku mātua'] },
{ english: "Your Parent", correct: "tōu matua", options: ['tōu matua', 'tōku matua', 'ōna mātua', 'tōna matua'] },
{ english: "His Parent", correct: "tōna matua", options: ['tōna matua', 'tōku matua', 'ōna mātua', 'tōu matua'] },
{ english: "My Children", correct: "āku tamariki", options: ['ōku tamariki', 'āku tamariki', 'āu tamariki', 'āna tamariki'] },
{ english: "Your Children", correct: "āu tamariki", options: ['āku tamariki', 'āna tamariki', 'āu tamariki', 'ōu tamariki'] },
{ english: "His Children", correct: "āna tamariki", options: ['ōna tamariki', 'āku tamariki', 'āna tamariki', 'āu tamariki'] },
{ english: "My Shoes", correct: "ōku hū", options: ['ōna hū', 'ōku hū', 'ōu hū', 'āku hū'] },
{ english: "Your Shoes", correct: "ōu hū", options: ['ōna hū', 'āu hū', 'ōu hū', 'ōku hū'] },
{ english: "His Shoes", correct: "ōna hū", options: ['ōku hū', 'āna hū', 'ōna hū', 'ōu hū'] },
{ english: "My Phone", correct: "tāku waea", options: ['tāku waea', 'tāu waea', 'tāna waea', 'āku waea'] },
{ english: "Your Phone", correct: "tāu waea", options: ['tāna waea', 'tāu waea', 'tāku waea', 'āu waea'] },
{ english: "His Phone", correct: "tāna waea", options: ['tāna waea', 'āna waea', 'tāku waea', 'tāu waea'] },
{ english: "My Car", correct: "tāku waka", options: ['āku waka', 'tāu waka', 'tāku waka', 'tāna waka'] },
{ english: "Your Car", correct: "tāu waka", options: ['tāna waka', 'tāu waka', 'tāku waka', 'āu waka'] },
{ english: "His Car", correct: "tāna waka", options: ['tāna waka', 'āna waka', 'tāu waka', 'tāku waka'] },
{ english: "My Job", correct: "tāku mahi", options: ['āu mahi', 'ōku mahi', 'tāku mahi', 'āna mahi'] },
{ english: "Your Job", correct: "tāu mahi", options: ['āna mahi', 'āku mahi', 'ōu mahi', 'tāu mahi'] },
{ english: "His Job", correct: "tāna mahi", options: ['ōna mahi', 'āu mahi', 'tāna mahi', 'āku mahi'] },
{ english: "My Dog", correct: "tāku kurī", options: ['tāku kurī', 'tāna kurī', 'āku kurī', 'tāu kurī'] },
{ english: "Your Dog", correct: "tāu kurī", options: ['tāu kurī', 'tāku kurī', 'tāna kurī', 'āu kurī'] },
{ english: "His Dog", correct: "tāna kurī", options: ['āna kurī', 'tāku kurī', 'tāu kurī', 'tāna kurī'] },
{ english: "My Cat", correct: "tāku ngeru", options: ['tāna ngeru', 'tāu ngeru', 'tāku ngeru', 'āku ngeru'] },
{ english: "Your Cat", correct: "tāu ngeru", options: ['tāu ngeru', 'tāna ngeru', 'tāku ngeru', 'āu ngeru'] },
{ english: "His Cat", correct: "tāna ngeru", options: ['tāku ngeru', 'tāna ngeru', 'āna ngeru', 'tāu ngeru'] },
{ english: "My Bag", correct: "tāku pēke", options: ['tāku pēke', 'āku pēke', 'tāu pēke', 'tāna pēke'] },
{ english: "Your Bag", correct: "tāu pēke", options: ['tāna pēke', 'tāu pēke', 'tāku pēke', 'āu pēke'] },
{ english: "His Bag", correct: "tāna pēke", options: ['tāku pēke', 'tāna pēke', 'āna pēke', 'tāu pēke'] },
{ english: "My Pen", correct: "tāku pene", options: ['tāu pene', 'tāna pene', 'tāku pene', 'āku pene'] },
{ english: "Your Pen", correct: "tāu pene", options: ['āu pene', 'tāna pene', 'tāku pene', 'tāu pene'] },
{ english: "His Pen", correct: "tāna pene", options: ['tāku pene', 'tāna pene', 'tāu pene', 'āna pene'] },
{ english: "My Glasses", correct: "ōku mōhiti", options: ['āku mōhiti', 'ōna mōhiti', 'ōku mōhiti', 'ōu mōhiti'] },
{ english: "Your Glasses", correct: "ōu mōhiti", options: ['ōna mōhiti', 'āu mōhiti', 'ōu mōhiti', 'ōku mōhiti'] },
{ english: "His Glasses", correct: "ōna mōhiti", options: ['ōu mōhiti', 'ōku mōhiti', 'ōna mōhiti', 'āna mōhiti'] },
{ english: "My Hats", correct: "ōku pōtae", options: ['ōu pōtae', 'āku pōtae', 'ōku pōtae', 'ōna pōtae'] },
{ english: "Your Hats", correct: "ōu pōtae", options: ['ōu pōtae', 'ōna pōtae', 'ōku pōtae', 'āu pōtae'] },
{ english: "His Hats", correct: "ōna pōtae", options: ['ōna pōtae', 'ōu pōtae', 'ōku pōtae', 'āna pōtae'] },
{ english: "Your Car", correct: "tāu waka", options: ['tāku waka', 'āu waka', 'tāna waka', 'tāu waka'] },
{ english: "Your Pen", correct: "tāu pene", options: ['tāu pene', 'tāna pene', 'tāku pene', 'āu pene'] },
{ english: "His Glasses", correct: "ōna mōhiti", options: ['ōu mōhiti', 'āna mōhiti', 'ōku mōhiti', 'ōna mōhiti'] },
{ english: "His Children", correct: "āna tamariki", options: ['āu tamariki', 'āna tamariki', 'ōna tamariki', 'āku tamariki'] },
{ english: "My Book", correct: "tāku pukapuka", options: ['tāu pukapuka', 'tāna pukapuka', 'tāku pukapuka', 'āku pukapuka'] },
{ english: "Your Phone", correct: "tāu waea", options: ['āu waea', 'tāku waea', 'tāna waea', 'tāu waea'] },
{ english: "His Job", correct: "tāna mahi", options: ['tāu mahi', 'ōna mahi', 'tāna mahi', 'āku mahi'] },
{ english: "His Cat", correct: "tāna ngeru", options: ['tāku ngeru', 'tāna ngeru', 'āna ngeru', 'tāu ngeru'] },
{ english: "My Chair", correct: "tōku tūru", options: ['tōna tūru', 'tōu tūru', 'ōku tūru', 'tōku tūru'] },
{ english: "Your Shoes", correct: "ōu hū", options: ['ōna hū', 'ōu hū', 'āu hū', 'ōku hū'] },
{ english: "My Parent", correct: "tōku matua", options: ['tōku matua', 'tōna matua', 'ōku mātua', 'tōu matua'] },
{ english: "Your Glasses", correct: "ōu mōhiti", options: ['ōna mōhiti', 'āu mōhiti', 'ōu mōhiti', 'ōku mōhiti'] },
{ english: "My Parent", correct: "tōku matua", options: ['ōku mātua', 'tōu matua', 'tōku matua', 'tōna matua'] },
{ english: "My Book", correct: "tāku pukapuka", options: ['āku pukapuka', 'tāu pukapuka', 'tāna pukapuka', 'tāku pukapuka'] },
{ english: "Your Glasses", correct: "ōu mōhiti", options: ['ōna mōhiti', 'ōu mōhiti', 'ōku mōhiti', 'āu mōhiti'] },
{ english: "Your School", correct: "tōu kura", options: ['tōku kura', 'tōu kura', 'ōna kura', 'tōna kura'] },
{ english: "His Parent", correct: "tōna matua", options: ['tōu matua', 'tōna matua', 'tōku matua', 'ōna mātua'] },
{ english: "My Chair", correct: "tōku tūru", options: ['ōku tūru', 'tōna tūru', 'tōku tūru', 'tōu tūru'] },
{ english: "My Book", correct: "tāku pukapuka", options: ['tāu pukapuka', 'tāna pukapuka', 'āku pukapuka', 'tāku pukapuka'] },
{ english: "His Children", correct: "āna tamariki", options: ['āna tamariki', 'ōna tamariki', 'āu tamariki', 'āku tamariki'] },
{ english: "My Chair", correct: "tōku tūru", options: ['tōku tūru', 'tōu tūru', 'ōku tūru', 'tōna tūru'] },
{ english: "Your Car", correct: "tāu waka", options: ['āu waka', 'tāu waka', 'tāku waka', 'tāna waka'] },
{ english: "His Glasses", correct: "ōna mōhiti", options: ['ōna mōhiti', 'ōku mōhiti', 'āna mōhiti', 'ōu mōhiti'] },
{ english: "His Chair", correct: "tōna tūru", options: ['tōna tūru', 'ōna tūru', 'tōu tūru', 'tōku tūru'] },
{ english: "His Shoes", correct: "ōna hū", options: ['ōku hū', 'āna hū', 'ōu hū', 'ōna hū'] },
{ english: "My House", correct: "tōku whare", options: ['tōu whare', 'ōku whare', 'tōna whare', 'tōku whare'] },
{ english: "His Glasses", correct: "ōna mōhiti", options: ['ōu mōhiti', 'āna mōhiti', 'ōna mōhiti', 'ōku mōhiti'] },
{ english: "Your Children", correct: "āu tamariki", options: ['ōu tamariki', 'āu tamariki', 'āku tamariki', 'āna tamariki'] },
{ english: "My Chair", correct: "tōku tūru", options: ['tōu tūru', 'ōku tūru', 'tōku tūru', 'tōna tūru'] },
{ english: "My Car", correct: "tāku waka", options: ['tāu waka', 'āku waka', 'tāku waka', 'tāna waka'] },
{ english: "Your Dog", correct: "tāu kurī", options: ['tāu kurī', 'tāku kurī', 'tāna kurī', 'āu kurī'] },
{ english: "My Hat", correct: "ōku pōtae", options: ['ōku pōtae', 'ōu pōtae', 'ōna pōtae', 'āku pōtae'] },
{ english: "His Children", correct: "āna tamariki", options: ['ōna tamariki', 'āna tamariki', 'āku tamariki', 'āu tamariki'] },
{ english: "My Book", correct: "tāku pukapuka", options: ['tāna pukapuka', 'āku pukapuka', 'tāu pukapuka', 'tāku pukapuka'] },
{ english: "Your Glasses", correct: "ōu mōhiti", options: ['āu mōhiti', 'ōku mōhiti', 'ōna mōhiti', 'ōu mōhiti'] },
{ english: "My Chair", correct: "tōku tūru", options: ['ōku tūru', 'tōna tūru', 'tōu tūru', 'tōku tūru'] },
{ english: "His Parent", correct: "tōna matua", options: ['tōna matua', 'ōna mātua', 'tōku matua', 'tōu matua'] },
{ english: "My Children", correct: "āku tamariki", options: ['āku tamariki', 'āu tamariki', 'āna tamariki', 'ōku tamariki'] },
{ english: "My Parent", correct: "tōku matua", options: ['tōu matua', 'ōku mātua', 'tōku matua', 'tōna matua'] },
{ english: "His Bag", correct: "tāna pēke", options: ['tāu pēke', 'tāku pēke', 'tāna pēke', 'āna pēke'] },
{ english: "My Parent", correct: "tōku matua", options: ['tōku matua', 'tōna matua', 'ōku mātua', 'tōu matua'] },
{ english: "Your Phone", correct: "tāu waea", options: ['tāku waea', 'tāu waea', 'āu waea', 'tāna waea'] },
{ english: "His Parent", correct: "tōna matua", options: ['tōna matua', 'tōku matua', 'tōu matua', 'ōna mātua'] },
{ english: "Your Bag", correct: "tāu pēke", options: ['tāna pēke', 'tāku pēke', 'āu pēke', 'tāu pēke'] },
{ english: "Your Glasses", correct: "ōu mōhiti", options: ['ōku mōhiti', 'ōu mōhiti', 'ōna mōhiti', 'āu mōhiti'] },
{ english: "Your Shoes", correct: "ōu hū", options: ['ōu hū', 'ōku hū', 'ōna hū', 'āu hū'] },
{ english: "Your Parent", correct: "tōu matua", options: ['tōku matua', 'tōu matua', 'tōna matua', 'ōna mātua'] },
{ english: "Your Bag", correct: "tāu pēke", options: ['tāna pēke', 'āu pēke', 'tāku pēke', 'tāu pēke'] },
{ english: "My Children", correct: "āku tamariki", options: ['āu tamariki', 'āku tamariki', 'ōku tamariki', 'āna tamariki'] }
];
function generateQuiz() {
const quizDiv = document.getElementById("quiz"); quizDiv.innerHTML = "";
const selectedQuestions = allQuestions.sort(() => 0.5 - Math.random()).slice(0, 10);
selectedQuestions.forEach((q, index) => {
const div = document.createElement("div"); div.className = "question";
div.innerHTML = `<label for="q${index}"><strong>${index + 1}. ${q.english}</strong></label>
<select id="q${index}" onchange="checkAnswer(${index}, '${q.correct}')">
<option value="">-- Select --</option>
${q.options.map(opt => `<option value="${opt}">${opt}</option>`).join("")}
</select>
<span id="feedback${index}" class="feedback"></span>`;
quizDiv.appendChild(div);
});
}
function checkAnswer(index, correct) {
const selected = document.getElementById(`q${index}`).value;
const feedback = document.getElementById(`feedback${index}`);
if (selected === correct) {
feedback.textContent = "✓ Correct";
feedback.className = "feedback correct";
} else {
feedback.textContent = "✗ Incorrect";
feedback.className = "feedback incorrect";
}
}
window.onload = generateQuiz;
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Possessive Pronoun Matching – Te Reo Māori</title>
<style>
body {
font-family: Arial, sans-serif;
font-size: 125%;
padding: 20px;
max-width: 1000px;
margin: auto;
background-color: #fff;
}
h2 {
color: #c71585;
}
.grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 12px;
}
.question {
display: flex;
align-items: center;
margin-bottom: 10px;
}
.question label {
flex: 1;
margin-right: 10px;
}
select {
font-size: 100%;
padding: 4px;
}
.feedback {
margin-left: 10px;
font-weight: bold;
}
.correct {
color: green;
}
.incorrect {
color: red;
}
</style>
</head>
<body>
<h2>Possessive Pronoun Matching – Te Reo Māori</h2>
<p>Select the correct Māori phrase for each English expression. Feedback appears instantly.</p>
<div class="grid" id="quiz"></div>
<script>
const questions = [
{
english: "My Dog",
correct: "tāku kurī",
options: ["tāku kurī", "tāu kurī", "tāna kurī"]
},
{
english: "My House",
correct: "tōku whare",
options: ["tōku whare", "tōu whare", "tōna whare"]
},
{
english: "My Children",
correct: "āku tamariki",
options: ["āku tamariki", "āu tamariki", "āna tamariki"]
},
{
english: "My Book",
correct: "tāku pukapuka",
options: ["tāku pukapuka", "tāu pukapuka", "tāna pukapuka"]
},
{
english: "My Jobs",
correct: "āku mahi",
options: ["āku mahi", "āu mahi", "āna mahi"]
},
{
english: "My Cars",
correct: "ōku waka",
options: ["ōku waka", "ōu waka", "ōna waka"]
},
{
english: "My Chair",
correct: "tōku tūru",
options: ["tōku tūru", "tōu tūru", "tōna tūru"]
},
{
english: "My Parents",
correct: "tōku mātua",
options: ["tōku mātua", "tōu mātua", "tōna mātua"]
},
{
english: "My School",
correct: "tōku kura",
options: ["tōku kura", "tōu kura", "tōna kura"]
},
{
english: "My Phones",
correct: "ōku waea",
options: ["ōku waea", "ōu waea", "ōna waea"]
}
];
const quizDiv = document.getElementById("quiz");
questions.forEach((q, index) => {
const options = [...q.options];
const div = document.createElement("div");
div.className = "question";
div.innerHTML = `
<label for="q${index}"><strong>${index + 1}. ${q.english}</strong></label>
<select id="q${index}" onchange="checkAnswer(${index}, '${q.correct}')">
<option value="">-- Select --</option>
${options.map(opt => `<option value="${opt}">${opt}</option>`).join("")}
</select>
<span id="feedback${index}" class="feedback"></span>
`;
quizDiv.appendChild(div);
});
function checkAnswer(index, correct) {
const selected = document.getElementById(`q${index}`).value;
const feedback = document.getElementById(`feedback${index}`);
if (selected === correct) {
feedback.textContent = "✓ Correct";
feedback.className = "feedback correct";
} else {
feedback.textContent = "✗ Incorrect";
feedback.className = "feedback incorrect";
}
}
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Possessive Pronoun Matching – Te Reo Māori</title>
<style>
body { font-family: Arial; font-size: 125%; background-color: #cce884; padding: 20px; max-width: 1000px; margin: auto; }
h2 { color: #5c15c7; }
.grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.question { display: flex; align-items: center; margin-bottom: 10px; }
.question label { flex: 1; margin-right: 10px; }
select { font-size: 100%; padding: 4px; }
.feedback { margin-left: 10px; font-weight: bold; }
.correct { color: green; }
.incorrect { color: red; }
button { margin-bottom: 20px; padding: 10px 20px; font-size: 100%; }
</style>
</head>
<body>
<h2>Possessive Pronoun Matching – Te Reo Māori</h2>
<p>Select the correct Māori phrase for each English expression. Feedback appears instantly.</p>
<button onclick="generateQuiz()">Generate New Quiz</button>
<div class="grid" id="quiz"></div>
<script>
const allQuestions = [
{'english': 'Her Shoes', 'correct': 'ōna hū', 'options': ['tāu hū', 'ōu hū', 'tā rātou hū', 'ōna hū']},
{'english': 'His Shoes', 'correct': 'ōna hū', 'options': ['tā mātou hū', 'ōna hū', 'tōu hū', 'ōku hū']},
{'english': 'My Shoes', 'correct': 'ōku hū', 'options': ['āu hū', 'ā rātou hū', 'āna hū', 'ōku hū']},
{'english': 'Our Shoes', 'correct': 'ō mātou hū', 'options': ['ōku hū', 'ō mātou hū', 'tāku hū', 'tāna hū']},
{'english': 'Their Shoes', 'correct': 'ō rātou hū', 'options': ['tōku hū', 'āna hū', 'ō rātou hū', 'āu hū']},
{'english': 'Your Shoes', 'correct': 'ōu hū', 'options': ['tāku hū', 'tō rātou hū', 'ōu hū', 'ō mātou hū']},
{'english': 'Her School', 'correct': 'tōna kura', 'options': ['ōna kura', 'tō rātou kura', 'āna kura', 'tōna kura']},
{'english': 'His School', 'correct': 'tōna kura', 'options': ['tō rātou kura', 'āu kura', 'āna kura', 'tōna kura']},
{'english': 'My School', 'correct': 'tōku kura', 'options': ['tō rātou kura', 'tōku kura', 'ōna kura', 'ōku kura']},
{'english': 'Our School', 'correct': 'tō mātou kura', 'options': ['ōku kura', 'tāu kura', 'tō mātou kura', 'āna kura']},
{'english': 'Their School', 'correct': 'tō rātou kura', 'options': ['tā rātou kura', 'ōu kura', 'tō rātou kura', 'tō mātou kura']},
{'english': 'Your School', 'correct': 'tōu kura', 'options': ['tōu kura', 'tōna kura', 'tāna kura', 'āu kura']},
{'english': 'Her Schools', 'correct': 'ōna kura', 'options': ['ōna kura', 'ā rātou kura', 'tāna kura', 'ōku kura']},
{'english': 'His Schools', 'correct': 'ōna kura', 'options': ['ā mātou kura', 'ōna kura', 'ā rātou kura', 'tā mātou kura']},
{'english': 'My Schools', 'correct': 'ōku kura', 'options': ['āu kura', 'ōku kura', 'tāna kura', 'ōna kura']},
{'english': 'Our Schools', 'correct': 'ō mātou kura', 'options': ['ōku kura', 'tōna kura', 'ō mātou kura', 'tāku kura']},
{'english': 'Their Schools', 'correct': 'ō rātou kura', 'options': ['āku kura', 'ō rātou kura', 'ōna kura', 'tōna kura']},
{'english': 'Your Schools', 'correct': 'ōu kura', 'options': ['ōu kura', 'tā rātou kura', 'tōna kura', 'tāu kura']},
{'english': 'Her Dog', 'correct': 'tāna kurī', 'options': ['tāna kurī', 'tāku kurī', 'tōu kurī', 'ōna kurī']},
{'english': 'His Dog', 'correct': 'tāna kurī', 'options': ['tāna kurī', 'ō mātou kurī', 'tō rātou kurī', 'ōku kurī']},
{'english': 'My Dog', 'correct': 'tāku kurī', 'options': ['āna kurī', 'tāku kurī', 'tōku kurī', 'ōku kurī']},
{'english': 'Our Dog', 'correct': 'tā mātou kurī', 'options': ['tōku kurī', 'ā rātou kurī', 'ō rātou kurī', 'tā mātou kurī']},
{'english': 'Their Dog', 'correct': 'tā rātou kurī', 'options': ['ō rātou kurī', 'tā rātou kurī', 'tāu kurī', 'tōu kurī']},
{'english': 'Your Dog', 'correct': 'tāu kurī', 'options': ['tāna kurī', 'tōu kurī', 'tōku kurī', 'tāu kurī']},
{'english': 'Her Dogs', 'correct': 'āna kurī', 'options': ['tōu kurī', 'tōna kurī', 'ōku kurī', 'āna kurī']},
{'english': 'His Dogs', 'correct': 'āna kurī', 'options': ['ā mātou kurī', 'tō rātou kurī', 'ā rātou kurī', 'āna kurī']},
{'english': 'My Dogs', 'correct': 'āku kurī', 'options': ['āku kurī', 'tāna kurī', 'tā mātou kurī', 'ōna kurī']},
{'english': 'Our Dogs', 'correct': 'ā mātou kurī', 'options': ['ōna kurī', 'ā mātou kurī', 'tā rātou kurī', 'ōu kurī']},
{'english': 'Their Dogs', 'correct': 'ā rātou kurī', 'options': ['tōu kurī', 'ōna kurī', 'ā rātou kurī', 'tāna kurī']},
{'english': 'Your Dogs', 'correct': 'āu kurī', 'options': ['tōu kurī', 'āu kurī', 'tā rātou kurī', 'tāku kurī']},
{'english': 'Her Job', 'correct': 'āna mahi', 'options': ['ā rātou mahi', 'āku mahi', 'āna mahi', 'āu mahi']},
{'english': 'His Job', 'correct': 'āna mahi', 'options': ['āu mahi', 'tō mātou mahi', 'āna mahi', 'ō mātou mahi']},
{'english': 'My Job', 'correct': 'āku mahi', 'options': ['āku mahi', 'ōna mahi', 'ō rātou mahi', 'tōu mahi']},
{'english': 'Our Job', 'correct': 'ā mātou mahi', 'options': ['tāku mahi', 'ā mātou mahi', 'tō rātou mahi', 'ōu mahi']},
{'english': 'Their Job', 'correct': 'ā rātou mahi', 'options': ['tōna mahi', 'āna mahi', 'ā rātou mahi', 'tāu mahi']},
{'english': 'Your Job', 'correct': 'āu mahi', 'options': ['tōku mahi', 'āna mahi', 'tō rātou mahi', 'āu mahi']},
{'english': 'Her Jobs', 'correct': 'āna mahi', 'options': ['ōna mahi', 'āna mahi', 'tā mātou mahi', 'tāu mahi']},
{'english': 'His Jobs', 'correct': 'āna mahi', 'options': ['tāna mahi', 'āna mahi', 'tō mātou mahi', 'āku mahi']},
{'english': 'My Jobs', 'correct': 'āku mahi', 'options': ['ā rātou mahi', 'tōna mahi', 'āku mahi', 'ōna mahi']},
{'english': 'Our Jobs', 'correct': 'ā mātou mahi', 'options': ['tāna mahi', 'ā mātou mahi', 'tōku mahi', 'tāku mahi']},
{'english': 'Their Jobs', 'correct': 'ā rātou mahi', 'options': ['ā rātou mahi', 'āu mahi', 'tāu mahi', 'tōna mahi']},
{'english': 'Your Jobs', 'correct': 'āu mahi', 'options': ['āu mahi', 'tōna mahi', 'ōku mahi', 'āna mahi']},
{'english': 'Her Parent', 'correct': 'tōna matua', 'options': ['tā mātou matua', 'tōna matua', 'āna matua', 'tāna matua']},
{'english': 'His Parent', 'correct': 'tōna matua', 'options': ['tōna matua', 'āku matua', 'tā mātou matua', 'tāku matua']},
{'english': 'My Parent', 'correct': 'tōku matua', 'options': ['ōna matua', 'ā mātou matua', 'tōku matua', 'ō rātou matua']},
{'english': 'Our Parent', 'correct': 'tō mātou matua', 'options': ['tō mātou matua', 'āu matua', 'āku matua', 'tā mātou matua']},
{'english': 'Their Parent', 'correct': 'tō rātou matua', 'options': ['tā mātou matua', 'tāu matua', 'tō rātou matua', 'ōku matua']},
{'english': 'Your Parent', 'correct': 'tōu matua', 'options': ['tāna matua', 'tōu matua', 'ā mātou matua', 'āna matua']},
{'english': 'Her Parents', 'correct': 'ōna mātua', 'options': ['tō rātou mātua', 'āna mātua', 'ōna mātua', 'tā rātou mātua']},
{'english': 'His Parents', 'correct': 'ōna mātua', 'options': ['ōna mātua', 'tō mātou mātua', 'tāna mātua', 'āna mātua']},
{'english': 'My Parents', 'correct': 'ōku mātua', 'options': ['ōna mātua', 'āu mātua', 'tōna mātua', 'ōku mātua']},
{'english': 'Our Parents', 'correct': 'ō mātou mātua', 'options': ['ō mātou mātua', 'ōku mātua', 'tōku mātua', 'tōu mātua']},
{'english': 'Their Parents', 'correct': 'ō rātou mātua', 'options': ['ōna mātua', 'āku mātua', 'ō rātou mātua', 'āu mātua']},
{'english': 'Your Parents', 'correct': 'ōu mātua', 'options': ['ōu mātua', 'ā mātou mātua', 'tā mātou mātua', 'ō mātou mātua']},
{'english': 'Her Glasses', 'correct': 'ōna mōhiti', 'options': ['tōna mōhiti', 'āna mōhiti', 'ō mātou mōhiti', 'ōna mōhiti']},
{'english': 'His Glasses', 'correct': 'ōna mōhiti', 'options': ['ōna mōhiti', 'ō rātou mōhiti', 'tō mātou mōhiti', 'tōna mōhiti']},
{'english': 'My Glasses', 'correct': 'ōku mōhiti', 'options': ['ōku mōhiti', 'āu mōhiti', 'ōna mōhiti', 'tāna mōhiti']},
{'english': 'Our Glasses', 'correct': 'ō mātou mōhiti', 'options': ['tōna mōhiti', 'ō mātou mōhiti', 'tāku mōhiti', 'āna mōhiti']},
{'english': 'Their Glasses', 'correct': 'ō rātou mōhiti', 'options': ['āku mōhiti', 'ō rātou mōhiti', 'tāna mōhiti', 'tō mātou mōhiti']},
{'english': 'Your Glasses', 'correct': 'ōu mōhiti', 'options': ['tāu mōhiti', 'tāna mōhiti', 'ōku mōhiti', 'ōu mōhiti']},
{'english': 'Her Cat', 'correct': 'tāna ngeru', 'options': ['ōu ngeru', 'tāna ngeru', 'āna ngeru', 'tōna ngeru']},
{'english': 'His Cat', 'correct': 'tāna ngeru', 'options': ['tāna ngeru', 'tāu ngeru', 'tōku ngeru', 'ōu ngeru']},
{'english': 'My Cat', 'correct': 'tāku ngeru', 'options': ['ōna ngeru', 'tāku ngeru', 'ō mātou ngeru', 'tōna ngeru']},
{'english': 'Our Cat', 'correct': 'tā mātou ngeru', 'options': ['tā mātou ngeru', 'āku ngeru', 'ā mātou ngeru', 'ō mātou ngeru']},
{'english': 'Their Cat', 'correct': 'tā rātou ngeru', 'options': ['ōna ngeru', 'tāu ngeru', 'ā rātou ngeru', 'tā rātou ngeru']},
{'english': 'Your Cat', 'correct': 'tāu ngeru', 'options': ['tāu ngeru', 'tō rātou ngeru', 'tōku ngeru', 'tō mātou ngeru']},
{'english': 'Her Cats', 'correct': 'āna ngeru', 'options': ['ā mātou ngeru', 'tō mātou ngeru', 'tōu ngeru', 'āna ngeru']},
{'english': 'His Cats', 'correct': 'āna ngeru', 'options': ['tāu ngeru', 'āna ngeru', 'ā mātou ngeru', 'tā rātou ngeru']},
{'english': 'My Cats', 'correct': 'āku ngeru', 'options': ['tāku ngeru', 'tō rātou ngeru', 'ōku ngeru', 'āku ngeru']},
{'english': 'Our Cats', 'correct': 'ā mātou ngeru', 'options': ['ōu ngeru', 'ō rātou ngeru', 'tō mātou ngeru', 'ā mātou ngeru']},
{'english': 'Their Cats', 'correct': 'ā rātou ngeru', 'options': ['ō rātou ngeru', 'ā rātou ngeru', 'tāna ngeru', 'ōku ngeru']},
{'english': 'Your Cats', 'correct': 'āu ngeru', 'options': ['tōna ngeru', 'āu ngeru', 'ō mātou ngeru', 'ā rātou ngeru']},
{'english': 'Her Pen', 'correct': 'tāna pene', 'options': ['tāna pene', 'tō mātou pene', 'tōu pene', 'ōna pene']},
{'english': 'His Pen', 'correct': 'tāna pene', 'options': ['tō rātou pene', 'ōu pene', 'tāna pene', 'tōna pene']},
{'english': 'My Pen', 'correct': 'tāku pene', 'options': ['ā rātou pene', 'tāku pene', 'tōna pene', 'tāna pene']},
{'english': 'Our Pen', 'correct': 'tā mātou pene', 'options': ['tā rātou pene', 'ā rātou pene', 'tā mātou pene', 'tōna pene']},
{'english': 'Their Pen', 'correct': 'tā rātou pene', 'options': ['tā rātou pene', 'tāna pene', 'tō mātou pene', 'tāku pene']},
{'english': 'Your Pen', 'correct': 'tāu pene', 'options': ['āna pene', 'tāku pene', 'ā mātou pene', 'tāu pene']},
{'english': 'Her Pens', 'correct': 'āna pene', 'options': ['tāku pene', 'āna pene', 'ōu pene', 'tā rātou pene']},
{'english': 'His Pens', 'correct': 'āna pene', 'options': ['āku pene', 'āna pene', 'tō rātou pene', 'tāna pene']},
{'english': 'My Pens', 'correct': 'āku pene', 'options': ['āku pene', 'tōna pene', 'ā mātou pene', 'ā rātou pene']},
{'english': 'Our Pens', 'correct': 'ā mātou pene', 'options': ['āna pene', 'ā mātou pene', 'tōna pene', 'ōna pene']},
{'english': 'Their Pens', 'correct': 'ā rātou pene', 'options': ['ā rātou pene', 'tā mātou pene', 'tō mātou pene', 'āna pene']},
{'english': 'Your Pens', 'correct': 'āu pene', 'options': ['ōku pene', 'āu pene', 'ōna pene', 'tōna pene']},
{'english': 'Her Book', 'correct': 'tāna pukapuka', 'options': ['ō mātou pukapuka', 'tāna pukapuka', 'āku pukapuka', 'tāku pukapuka']},
{'english': 'His Book', 'correct': 'tāna pukapuka', 'options': ['tāna pukapuka', 'ōna pukapuka', 'tā rātou pukapuka', 'tōku pukapuka']},
{'english': 'My Book', 'correct': 'tāku pukapuka', 'options': ['āu pukapuka', 'tāku pukapuka', 'ā rātou pukapuka', 'tāna pukapuka']},
{'english': 'Our Book', 'correct': 'tā mātou pukapuka', 'options': ['tā rātou pukapuka', 'tōna pukapuka', 'ō rātou pukapuka', 'tā mātou pukapuka']},
{'english': 'Their Book', 'correct': 'tā rātou pukapuka', 'options': ['tāku pukapuka', 'tō rātou pukapuka', 'tā rātou pukapuka', 'ā rātou pukapuka']},
{'english': 'Your Book', 'correct': 'tāu pukapuka', 'options': ['tāu pukapuka', 'ō mātou pukapuka', 'tā mātou pukapuka', 'āna pukapuka']},
{'english': 'Her Books', 'correct': 'āna pukapuka', 'options': ['āna pukapuka', 'ōku pukapuka', 'tā rātou pukapuka', 'ō rātou pukapuka']},
{'english': 'His Books', 'correct': 'āna pukapuka', 'options': ['āu pukapuka', 'tāu pukapuka', 'tōna pukapuka', 'āna pukapuka']},
{'english': 'My Books', 'correct': 'āku pukapuka', 'options': ['tā rātou pukapuka', 'tōna pukapuka', 'āku pukapuka', 'ā mātou pukapuka']},
{'english': 'Our Books', 'correct': 'ā mātou pukapuka', 'options': ['ō mātou pukapuka', 'ōna pukapuka', 'tāna pukapuka', 'ā mātou pukapuka']},
{'english': 'Their Books', 'correct': 'ā rātou pukapuka', 'options': ['tāna pukapuka', 'ō rātou pukapuka', 'ā rātou pukapuka', 'ōna pukapuka']},
{'english': 'Your Books', 'correct': 'āu pukapuka', 'options': ['ōna pukapuka', 'āu pukapuka', 'ōku pukapuka', 'ō mātou pukapuka']},
{'english': 'Her Bag', 'correct': 'tāna pēke', 'options': ['tōku pēke', 'ōna pēke', 'āna pēke', 'tāna pēke']},
{'english': 'His Bag', 'correct': 'tāna pēke', 'options': ['tōu pēke', 'ōu pēke', 'ō mātou pēke', 'tāna pēke']},
{'english': 'My Bag', 'correct': 'tāku pēke', 'options': ['tōu pēke', 'āu pēke', 'tāku pēke', 'ōna pēke']},
{'english': 'Our Bag', 'correct': 'tā mātou pēke', 'options': ['tōna pēke', 'tā mātou pēke', 'tāu pēke', 'tōku pēke']},
];
function generateQuiz() {
const quizDiv = document.getElementById("quiz"); quizDiv.innerHTML = "";
const selectedQuestions = allQuestions.sort(() => 0.5 - Math.random()).slice(0, 10);
selectedQuestions.forEach((q, index) => {
const div = document.createElement("div"); div.className = "question";
div.innerHTML = `<label for="q${index}"><strong>${index + 1}. ${q.english}</strong></label>
<select id="q${index}" onchange="checkAnswer(${index}, '${q.correct}')">
<option value="">-- Select --</option>
${q.options.map(opt => `<option value="${opt}">${opt}</option>`).join("")}
</select>
<span id="feedback${index}" class="feedback"></span>`;
quizDiv.appendChild(div);
});
}
function checkAnswer(index, correct) {
const selected = document.getElementById(`q${index}`).value;
const feedback = document.getElementById(`feedback${index}`);
if (selected === correct) {
feedback.textContent = "✓ Correct";
feedback.className = "feedback correct";
} else {
feedback.textContent = "✗ Incorrect";
feedback.className = "feedback incorrect";
}
}
window.onload = generateQuiz;
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Possessive Pronoun Matching – Te Reo Māori</title>
<style>
body {
font-family: Arial, sans-serif;
font-size: 125%;
padding: 20px;
max-width: 1000px;
margin: auto;
background-color: #fff;
}
h2 {
color: #c71585;
}
.grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 12px;
}
.question {
display: flex;
align-items: center;
margin-bottom: 10px;
}
.question label {
flex: 1;
margin-right: 10px;
}
select {
font-size: 100%;
padding: 4px;
}
.feedback {
margin-left: 10px;
font-weight: bold;
}
.correct {
color: green;
}
.incorrect {
color: red;
}
</style>
</head>
<body>
<h2>Possessive Pronoun Matching – Te Reo Māori</h2>
<p>Select the correct Māori phrase for each English expression. Feedback appears instantly.</p>
<div class="grid" id="quiz"></div>
<script>
const questions = [
{
english: "Her School",
correct: "tōna kura",
options: ["tōku kura", "tōu kura","tōna kura", "tāna kura"]
},
{
english: "His Parent",
correct: "tōna mātua",
options: ["tōku mātua", "tōna mātua", "tōu mātua", "ōna mātua"]
},
{
english: "Your Cars",
correct: "ōu waka",
options: ["ōu waka", "ōku waka", "ōna waka", "āu waka"]
},
{
english: "His School",
correct: "tōna kura",
options: ["tōku kura", "tōna kura", "tōu kura", "ōna kura"]
},
{
english: "My Chair",
correct: "tōku tūru",
options: ["tōu tūru", "tōna tūru", "ōku tūru", "tōku tūru"]
},
{
english: "Your House",
correct: "tōu whare",
options: ["tōu whare", "tōku whare", "tōna whare", "ōna whare"]
},
{
english: "Their Jobs",
correct: "āna mahi",
options: ["āna mahi", "āku mahi", "āu mahi", "ōna mahi"]
},
{
english: "Your Book",
correct: "tāu pukapuka",
options: ["tāu pukapuka", "tāku pukapuka", "tāna pukapuka", "āu pukapuka"]
},
{
english: "My Phones",
correct: "āku waea",
options: ["ōku waea", "ōu waea", "ōna waea", "āku waea"]
},
{
english: "His Children",
correct: "āna tamariki",
options: ["tāna tamariki", "āku tamariki", "āu tamariki", "āna tamariki"]
}
];
const quizDiv = document.getElementById("quiz");
questions.forEach((q, index) => {
const options = [...q.options];
const div = document.createElement("div");
div.className = "question";
div.innerHTML = `
<label for="q${index}"><strong>${index + 1}. ${q.english}</strong></label>
<select id="q${index}" onchange="checkAnswer(${index}, '${q.correct}')">
<option value="">-- Select --</option>
${options.map(opt => `<option value="${opt}">${opt}</option>`).join("")}
</select>
<span id="feedback${index}" class="feedback"></span>
`;
quizDiv.appendChild(div);
});
function checkAnswer(index, correct) {
const selected = document.getElementById(`q${index}`).value;
const feedback = document.getElementById(`feedback${index}`);
if (selected === correct) {
feedback.textContent = "✓ Correct";
feedback.className = "feedback correct";
} else {
feedback.textContent = "✗ Incorrect";
feedback.className = "feedback incorrect";
}
}
</script>
</body>
</html>
{ english: "My House", correct: "tōku whare", options: ["tōku whare", "tōu whare", "tōna whare", "ōku whare"] },
{ english: "Your House", correct: "tōu whare", options: ["tōu whare", "tōku whare", "tōna whare", "ōna whare"] },
{ english: "His House", correct: "tōna whare", options: ["tōna whare", "tōku whare", "tōu whare", "ōna whare"] },
{ english: "My Chair", correct: "tōku tūru", options: ["tōku tūru", "tōu tūru", "tōna tūru", "ōku tūru"] },
{ english: "Your Chair", correct: "tōu tūru", options: ["tōu tūru", "tōku tūru", "tōna tūru", "ōna tūru"] },
{ english: "His Chair", correct: "tōna tūru", options: ["tōna tūru", "tōku tūru", "tōu tūru", "ōna tūru"] },
// ✅ Singular (Parent)
{ english: "My Parent", correct: "tōku matua", options: ["tōku matua", "tōu matua", "tōna matua", "ōku mātua"] },
{ english: "Your Parent", correct: "tōu matua", options: ["tōu matua", "tōku matua", "tōna matua", "ōna mātua"] },
{ english: "His Parent", correct: "tōna matua", options: ["tōna matua", "tōku matua", "tōu matua", "ōna mātua"] },
// ✅ Plural (Parents)
{ english: "My Parents", correct: "ōku mātua", options: ["ōku mātua", "tōku matua", "tōu matua", "ōna mātua"] },
{ english: "Your Parents", correct: "ōu mātua", options: ["ōu mātua", "ōku mātua", "ōna mātua", "tōna matua"] },
{ english: "His Parents", correct: "ōna mātua", options: ["ōna mātua", "ōku mātua", "ōu mātua", "tōna matua"] },
{ english: "My Children", correct: "āku tamariki", options: ["āku tamariki", "āu tamariki", "āna tamariki", "ōku tamariki"] },
{ english: "Your Children", correct: "āu tamariki", options: ["āu tamariki", "āku tamariki", "āna tamariki", "ōu tamariki"] },
{ english: "His Children", correct: "āna tamariki", options: ["āna tamariki", "āku tamariki", "āu tamariki", "ōna tamariki"] },
{ english: "My School", correct: "tōku kura", options: ["tōku kura", "tōu kura", "tōna kura", "ōku kura"] },
{ english: "Your School", correct: "tōu kura", options: ["tōu kura", "tōku kura", "tōna kura", "ōna kura"] },
{ english: "His School", correct: "tōna kura", options: ["tōna kura", "tōku kura", "tōu kura", "ōna kura"] },
{ english: "My Dog", correct: "tāku kurī", options: ["tāku kurī", "tāu kurī", "tāna kurī", "āku kurī"] },
{ english: "Your Dog", correct: "tāu kurī", options: ["tāu kurī", "tāku kurī", "tāna kurī", "āu kurī"] },
{ english: "His Dog", correct: "tāna kurī", options: ["tāna kurī", "tāku kurī", "tāu kurī", "āna kurī"] },
{ english: "My Cat", correct: "tāku ngeru", options: ["tāku ngeru", "tāu ngeru", "tāna ngeru", "āku ngeru"] },
{ english: "Your Cat", correct: "tāu ngeru", options: ["tāu ngeru", "tāku ngeru", "tāna ngeru", "āu ngeru"] },
{ english: "His Cat", correct: "tāna ngeru", options: ["tāna ngeru", "tāku ngeru", "tāu ngeru", "āna ngeru"] },
{ english: "My Book", correct: "tāku pukapuka", options: ["tāku pukapuka", "tāu pukapuka", "tāna pukapuka", "āku pukapuka"] },
{ english: "Your Book", correct: "tāu pukapuka", options: ["tāu pukapuka", "tāku pukapuka", "tāna pukapuka", "āu pukapuka"] },
{ english: "His Book", correct: "tāna pukapuka", options: ["tāna pukapuka", "tāku pukapuka", "tāu pukapuka", "āna pukapuka"] },
{ english: "My Bag", correct: "tāku pēke", options: ["tāku pēke", "tāu pēke", "tāna pēke", "āku pēke"] },
{ english: "Your Bag", correct: "tāu pēke", options: ["tāu pēke", "tāku pēke", "tāna pēke", "āu pēke"] },
{ english: "His Bag", correct: "tāna pēke", options: ["tāna pēke", "tāku pēke", "tāu pēke", "āna pēke"] },
{ english: "My Pen", correct: "tāku pene", options: ["tāku pene", "tāu pene", "tāna pene", "āku pene"] },
{ english: "Your Pen", correct: "tāu pene", options: ["tāu pene", "tāku pene", "tāna pene", "āu pene"] },
{ english: "His Pen", correct: "tāna pene", options: ["tāna pene", "tāku pene", "tāu pene", "āna pene"] },
{ english: "My Phone", correct: "tāku waea", options: ["tāku waea", "tāu waea", "tāna waea", "āku waea"] },
{ english: "Your Phone", correct: "tāu waea", options: ["tāu waea", "tāku waea", "tāna waea", "āu waea"] },
{ english: "His Phone", correct: "tāna waea", options: ["tāna waea", "tāku waea", "tāu waea", "āna waea"] },
{ english: "My Car", correct: "tāku waka", options: ["tāku waka", "tāu waka", "tāna waka", "āku waka"] },
{ english: "Your Car", correct: "tāu waka", options: ["tāu waka", "tāku waka", "tāna waka", "āu waka"] },
{ english: "His Car", correct: "tāna waka", options: ["tāna waka", "tāku waka", "tāu waka", "āna waka"] },
{ english: "My Glasses", correct: "ōku mōhiti", options: ["ōku mōhiti", "ōu mōhiti", "ōna mōhiti", "āku mōhiti"] },
{ english: "Your Glasses", correct: "ōu mōhiti", options: ["ōu mōhiti", "ōku mōhiti", "ōna mōhiti", "āu mōhiti"] },
{ english: "His Glasses", correct: "ōna mōhiti", options: ["ōna mōhiti", "ōku mōhiti", "ōu mōhiti", "āna mōhiti"] },
{ english: "My Hat", correct: "tāku pōtae", options: ["tāku pōtae", "tāu pōtae", "tāna pōtae", "āku pōtae"] },
{ english: "Your Hat", correct: "tāu pōtae", options: ["tāu pōtae", "tāku pōtae", "tāna pōtae", "āu pōtae"] },
{ english: "His Hat", correct: "tāna pōtae", options: ["tāna pōtae", "tāku pōtae", "tāu pōtae", "āna pōtae"] },
{ english: "My Shoes", correct: "ōku hū", options: ["ōku hū", "ōu hū", "ōna hū", "āku hū"] },
{ english: "Your Shoes", correct: "ōu hū", options: ["ōu hū", "ōku hū", "ōna hū", "āu hū"] },
{ english: "His Shoes", correct: "ōna hū", options: ["ōna hū", "ōku hū", "ōu hū", "āna hū"] },
{ english: "My Job", correct: "tāku mahi", options: ["tāku mahi", "tāu mahi", "tāna mahi", "āku mahi"] },
{ english: "Your Job", correct: "tāu mahi", options: ["tāu mahi", "tāku mahi", "tāna mahi", "āu mahi"] },
{ english: "His Job", correct: "tāna mahi", options: ["tāna mahi", "tāku mahi", "tāu mahi", "āna mahi"] }
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Possessive Pronoun Matching – Te Reo Māori</title>
<style>
body { font-family: Arial; font-size: 125%; padding: 20px; max-width: 1000px; margin: auto; }
h2 { color: #c71585; }
.grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.question { display: flex; align-items: center; margin-bottom: 10px; }
.question label { flex: 1; margin-right: 10px; }
select { font-size: 100%; padding: 4px; }
.feedback { margin-left: 10px; font-weight: bold; }
.correct { color: green; }
.incorrect { color: red; }
button { margin-bottom: 20px; padding: 10px 20px; font-size: 100%; }
</style>
</head>
<body>
<h2>Possessive Pronoun Matching – Te Reo Māori</h2>
<p>Select the correct Māori phrase for each English expression. Feedback appears instantly.</p>
<button onclick="generateQuiz()">Generate New Quiz</button>
<div class="grid" id="quiz"></div>
<script>
const allQuestions = [
[
// HOUSE
{ english: "My House", correct: "tōku whare", options: ["tōku whare", "tōu whare", "tōna whare", "ōku whare"] },
{ english: "Your House", correct: "tōu whare", options: ["tōu whare", "tōku whare", "tōna whare", "ōna whare"] },
{ english: "His House", correct: "tōna whare", options: ["tōna whare", "tōku whare", "tōu whare", "ōna whare"] },
// FURNITURE
{ english: "My Chair", correct: "tōku tūru", options: ["tōku tūru", "tōu tūru", "tōna tūru", "ōku tūru"] },
{ english: "Your Chair", correct: "tōu tūru", options: ["tōu tūru", "tōku tūru", "tōna tūru", "ōna tūru"] },
{ english: "His Chair", correct: "tōna tūru", options: ["tōna tūru", "tōku tūru", "tōu tūru", "ōna tūru"] },
// FAMILY - Parents
{ english: "My Parent", correct: "tōku mātua", options: ["tōku mātua", "tōu mātua", "tōna mātua", "ōku mātua"] },
{ english: "Your Parent", correct: "tōu mātua", options: ["tōu mātua", "tōku mātua", "tōna mātua", "ōna mātua"] },
{ english: "His Parent", correct: "tōna mātua", options: ["tōna mātua", "tōku mātua", "tōu mātua", "ōna mātua"] },
{ english: "My Parents", correct: "ōku mātua", options: ["ōku mātua", "ōu mātua", "ōna mātua", "āku mātua"] },
{ english: "Your Parents", correct: "ōu mātua", options: ["ōu mātua", "ōku mātua", "ōna mātua", "āu mātua"] },
{ english: "His Parents", correct: "ōna mātua", options: ["ōna mātua", "ōku mātua", "ōu mātua", "āna mātua"] },
// FAMILY - Children
{ english: "My Children", correct: "āku tamariki", options: ["āku tamariki", "āu tamariki", "āna tamariki", "ōku tamariki"] },
{ english: "Your Children", correct: "āu tamariki", options: ["āu tamariki", "āku tamariki", "āna tamariki", "ōu tamariki"] },
{ english: "His Children", correct: "āna tamariki", options: ["āna tamariki", "āku tamariki", "āu tamariki", "ōna tamariki"] },
// SCHOOL
{ english: "My School", correct: "tōku kura", options: ["tōku kura", "tōu kura", "tōna kura", "ōku kura"] },
{ english: "Your School", correct: "tōu kura", options: ["tōu kura", "tōku kura", "tōna kura", "ōna kura"] },
{ english: "His School", correct: "tōna kura", options: ["tōna kura", "tōku kura", "tōu kura", "ōna kura"] },
// PETS
{ english: "My Dog", correct: "tāku kurī", options: ["tāku kurī", "tāu kurī", "tāna kurī", "āku kurī"] },
{ english: "Your Dog", correct: "tāu kurī", options: ["tāu kurī", "tāku kurī", "tāna kurī", "āu kurī"] },
{ english: "His Dog", correct: "tāna kurī", options: ["tāna kurī", "tāku kurī", "tāu kurī", "āna kurī"] },
{ english: "My Cat", correct: "tāku ngeru", options: ["tāku ngeru", "tāu ngeru", "tāna ngeru", "āku ngeru"] },
{ english: "Your Cat", correct: "tāu ngeru", options: ["tāu ngeru", "tāku ngeru", "tāna ngeru", "āu ngeru"] },
{ english: "His Cat", correct: "tāna ngeru", options: ["tāna ngeru", "tāku ngeru", "tāu ngeru", "āna ngeru"] },
// PERSONAL ITEMS
{ english: "My Book", correct: "tāku pukapuka", options: ["tāku pukapuka", "tāu pukapuka", "tāna pukapuka", "āku pukapuka"] },
{ english: "Your Book", correct: "tāu pukapuka", options: ["tāu pukapuka", "tāku pukapuka", "tāna pukapuka", "āu pukapuka"] },
{ english: "His Book", correct: "tāna pukapuka", options: ["tāna pukapuka", "tāku pukapuka", "tāu pukapuka", "āna pukapuka"] },
{ english: "My Bag", correct: "tāku pēke", options: ["tāku pēke", "tāu pēke", "tāna pēke", "āku pēke"] },
{ english: "Your Bag", correct: "tāu pēke", options: ["tāu pēke", "tāku pēke", "tāna pēke", "āu pēke"] },
{ english: "His Bag", correct: "tāna pēke", options: ["tāna pēke", "tāku pēke", "tāu pēke", "āna pēke"] },
{ english: "My Pen", correct: "tāku pene", options: ["tāku pene", "tāu pene", "tāna pene", "āku pene"] },
{ english: "Your Pen", correct: "tāu pene", options: ["tāu pene", "tāku pene", "tāna pene", "āu pene"] },
{ english: "His Pen", correct: "tāna pene", options: ["tāna pene", "tāku pene", "tāu pene", "āna pene"] },
{ english: "My Phone", correct: "tāku waea", options: ["tāku waea", "tāu waea", "tāna waea", "āku waea"] },
{ english: "Your Phone", correct: "tāu waea", options: ["tāu waea", "tāku waea", "tāna waea", "āu waea"] },
{ english: "His Phone", correct: "tāna waea", options: ["tāna waea", "tāku waea", "tāu waea", "āna waea"] },
{ english: "My Car", correct: "tāku waka", options: ["tāku waka", "tāu waka", "tāna waka", "āku waka"] },
{ english: "Your Car", correct: "tāu waka", options: ["tāu waka", "tāku waka", "tāna waka", "āu waka"] },
{ english: "His Car", correct: "tāna waka", options: ["tāna waka", "tāku waka", "tāu waka", "āna waka"] },
{ english: "My Glasses", correct: "ōku mōhiti", options: ["ōku mōhiti", "ōu mōhiti", "ōna mōhiti", "āku mōhiti"] },
{ english: "Your Glasses", correct: "ōu mōhiti", options: ["ōu mōhiti", "ōku mōhiti", "ōna mōhiti", "āu mōhiti"] },
{ english: "His Glasses", correct: "ōna mōhiti", options: ["ōna mōhiti", "ōku mōhiti", "ōu mōhiti", "āna mōhiti"] },
{ english: "My Hat", correct: "tāku pōtae", options: ["tāku pōtae", "tāu pōtae", "tāna pōtae", "āku pōtae"] },
{ english: "Your Hat", correct: "tāu pōtae", options: ["tāu pōtae", "tāku pōtae", "tāna pōtae", "āu pōtae"] },
{ english: "His Hat", correct: "tāna pōtae", options: ["tāna pōtae", "tāku pōtae", "tāu pōtae", "āna pōtae"] },
{ english: "My Shoes", correct: "ōku hū", options: ["ōku hū", "ōu hū", "ōna hū", "āku hū"] },
{ english: "Your Shoes", correct: "ōu hū", options: ["ōu hū", "ōku hū", "ōna hū", "āu hū"] },
{ english: "His Shoes", correct: "ōna hū", options: ["ōna hū", "ōku hū", "ōu hū", "āna hū"] },
// JOB
{ english: "My Job", correct: "tāku mahi", options: ["tāku mahi", "tāu mahi", "tāna mahi", "āku mahi"] },
{ english: "Your Job", correct: "tāu mahi", options: ["tāu mahi", "tāku mahi", "tāna mahi", "āu mahi"] },
{ english: "His Job", correct: "tāna mahi", options: ["tāna mahi", "tāku mahi", "tāu mahi", "āna mahi"] }
]
];
function generateQuiz() {
const quizDiv = document.getElementById("quiz"); quizDiv.innerHTML = "";
const selectedQuestions = allQuestions.sort(() => 0.5 - Math.random()).slice(0, 10);
selectedQuestions.forEach((q, index) => {
const div = document.createElement("div"); div.className = "question";
div.innerHTML = `<label for="q${index}"><strong>${index + 1}. ${q.english}</strong></label>
<select id="q${index}" onchange="checkAnswer(${index}, '${q.correct}')">
<option value="">-- Select --</option>
${q.options.map(opt => `<option value="${opt}">${opt}</option>`).join("")}
</select>
<span id="feedback${index}" class="feedback"></span>`;
quizDiv.appendChild(div);
});
}
function checkAnswer(index, correct) {
const selected = document.getElementById(`q${index}`).value;
const feedback = document.getElementById(`feedback${index}`);
if (selected === correct) {
feedback.textContent = "✓ Correct";
feedback.className = "feedback correct";
} else {
feedback.textContent = "✗ Incorrect";
feedback.className = "feedback incorrect";
}
}
window.onload = generateQuiz;
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
body { font-family: Arial; font-size: 125%; background-color: #fff0f5; padding: 20px; max-width: 1000px; margin: auto; }
h2 { color: #1574c7; }
.grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.question { display: flex; align-items: center; margin-bottom: 10px; }
.question label { flex: 1; margin-right: 10px; }
select { font-size: 100%; padding: 4px; }
.feedback { margin-left: 10px; font-weight: bold; }
.correct { color: green; }
.incorrect { color: red; }
button { margin-bottom: 20px; padding: 10px 20px; font-size: 100%; }
</style>
</head>
<body>
<p>Select the correct Māori phrase for each English expression. Feedback appears instantly.</p>
<button onclick="generateQuiz()">Generate New Quiz</button>
<div class="grid" id="quiz"></div>
<script>
function generateQuiz() {
const quizDiv = document.getElementById("quiz"); quizDiv.innerHTML = "";
const selectedQuestions = allQuestions.sort(() => 0.5 - Math.random()).slice(0, 10);
selectedQuestions.forEach((q, index) => {
const div = document.createElement("div"); div.className = "question";
div.innerHTML = `<label for="q${index}"><strong>${index + 1}. ${q.english}</strong></label>
<select id="q${index}" onchange="checkAnswer(${index}, '${q.correct}')">
<option value="">-- Select --</option>
${q.options.map(opt => `<option value="${opt}">${opt}</option>`).join("")}
</select>
<span id="feedback${index}" class="feedback"></span>`;
quizDiv.appendChild(div);
});
}
function checkAnswer(index, correct) {
const selected = document.getElementById(`q${index}`).value;
const feedback = document.getElementById(`feedback${index}`);
if (selected === correct) {
feedback.textContent = "✓ Correct";
feedback.className = "feedback correct";
} else {
feedback.textContent = "✗ Incorrect";
feedback.className = "feedback incorrect";
}
}
window.onload = generateQuiz;
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Possessive Pronoun Matching – Te Reo Māori</title>
<style>
body { font-family: Arial; font-size: 125%; background-color: #cce884; padding: 20px; max-width: 1000px; margin: auto; }
h2 { color: #5c15c7; }
.grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.question { display: flex; align-items: center; margin-bottom: 10px; }
.question label { flex: 1; margin-right: 10px; }
select { font-size: 100%; padding: 4px; }
.feedback { margin-left: 10px; font-weight: bold; }
.correct { color: green; }
.incorrect { color: red; }
button { margin-bottom: 20px; padding: 10px 20px; font-size: 100%; }
</style>
</head>
<body>
<h2>Possessive Pronoun Matching – Te Reo Māori</h2>
<p>Select the correct Māori phrase for each English expression. Feedback appears instantly.</p>
<button onclick="generateQuiz()">Generate New Quiz</button>
<div class="grid" id="quiz"></div>
<script>
function generateQuiz() {
const quizDiv = document.getElementById("quiz"); quizDiv.innerHTML = "";
const selectedQuestions = allQuestions.sort(() => 0.5 - Math.random()).slice(0, 10);
selectedQuestions.forEach((q, index) => {
const div = document.createElement("div"); div.className = "question";
div.innerHTML = `<label for="q${index}"><strong>${index + 1}. ${q.english}</strong></label>
<select id="q${index}" onchange="checkAnswer(${index}, '${q.correct}')">
<option value="">-- Select --</option>
${q.options.map(opt => `<option value="${opt}">${opt}</option>`).join("")}
</select>
<span id="feedback${index}" class="feedback"></span>`;
quizDiv.appendChild(div);
});
}
function checkAnswer(index, correct) {
const selected = document.getElementById(`q${index}`).value;
const feedback = document.getElementById(`feedback${index}`);
if (selected === correct) {
feedback.textContent = "✓ Correct";
feedback.className = "feedback correct";
} else {
feedback.textContent = "✗ Incorrect";
feedback.className = "feedback incorrect";
}
}
window.onload = generateQuiz;
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Possessive Pronoun Matching – Te Reo Māori</title>
<style>
body { font-family: Arial; font-size: 125%; background-color:#e6cafa; padding: 20px; max-width: 1000px; margin: auto; }
h2 { color: #6a0eeb; }
.grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.question { display: flex; align-items: center; margin-bottom: 10px; }
.question label { flex: 1; margin-right: 10px; }
select { font-size: 100%; padding: 4px; }
.feedback { margin-left: 10px; font-weight: bold; }
.correct { color: green; }
.incorrect { color: red; }
button { margin-bottom: 20px; padding: 10px 20px; font-size: 100%; }
</style>
</head>
<body>
<h2>Possessive Pronoun Matching – Te Reo Māori</h2>
<p>Select the correct Māori phrase for each English expression. Feedback appears instantly.</p>
<button onclick="generateQuiz()">Generate New Quiz</button>
<div class="grid" id="quiz"></div>
<script>
const allQuestions = [
{ english: "My House", correct: "tōku whare", options: ['tōu whare', 'ōku whare', 'tōku whare', 'tōna whare'] },
{ english: "Your House", correct: "tōu whare", options: ['ōna whare', 'tōku whare', 'tōna whare', 'tōu whare'] },
{ english: "His House", correct: "tōna whare", options: ['tōu whare', 'tōku whare', 'tōna whare', 'ōna whare'] },
{ english: "My Chair", correct: "tōku tūru", options: ['ōku tūru', 'tōu tūru', 'tōna tūru', 'tōku tūru'] },
{ english: "Your Chair", correct: "tōu tūru", options: ['ōna tūru', 'tōna tūru', 'tōku tūru', 'tōu tūru'] },
{ english: "His Chair", correct: "tōna tūru", options: ['tōna tūru', 'tōu tūru', 'tōku tūru', 'ōna tūru'] },
{ english: "My Book", correct: "tāku pukapuka", options: ['āku pukapuka', 'tāu pukapuka', 'tāku pukapuka', 'tāna pukapuka'] },
{ english: "Your Book", correct: "tāu pukapuka", options: ['āu pukapuka', 'tāna pukapuka', 'tāku pukapuka', 'tāu pukapuka'] },
{ english: "His Book", correct: "tāna pukapuka", options: ['tāna pukapuka', 'tāku pukapuka', 'tāu pukapuka', 'āna pukapuka'] },
{ english: "My School", correct: "tōku kura", options: ['tōku kura', 'ōku kura', 'tōna kura', 'tōu kura'] },
{ english: "Your School", correct: "tōu kura", options: ['ōna kura', 'tōu kura', 'tōku kura', 'tōna kura'] },
{ english: "His School", correct: "tōna kura", options: ['ōna kura', 'tōu kura', 'tōku kura', 'tōna kura'] },
{ english: "My Parent", correct: "tōku matua", options: ['tōu matua', 'tōku matua', 'tōna matua', 'ōku mātua'] },
{ english: "Your Parent", correct: "tōu matua", options: ['tōu matua', 'tōku matua', 'ōna mātua', 'tōna matua'] },
{ english: "His Parent", correct: "tōna matua", options: ['tōna matua', 'tōku matua', 'ōna mātua', 'tōu matua'] },
{ english: "My Children", correct: "āku tamariki", options: ['ōku tamariki', 'āku tamariki', 'āu tamariki', 'āna tamariki'] },
{ english: "Your Children", correct: "āu tamariki", options: ['āku tamariki', 'āna tamariki', 'āu tamariki', 'ōu tamariki'] },
{ english: "His Children", correct: "āna tamariki", options: ['ōna tamariki', 'āku tamariki', 'āna tamariki', 'āu tamariki'] },
{ english: "My Shoes", correct: "ōku hū", options: ['ōna hū', 'ōku hū', 'ōu hū', 'āku hū'] },
{ english: "Your Shoes", correct: "ōu hū", options: ['ōna hū', 'āu hū', 'ōu hū', 'ōku hū'] },
{ english: "His Shoes", correct: "ōna hū", options: ['ōku hū', 'āna hū', 'ōna hū', 'ōu hū'] },
{ english: "My Phone", correct: "tāku waea", options: ['tāku waea', 'tāu waea', 'tāna waea', 'āku waea'] },
{ english: "Your Phone", correct: "tāu waea", options: ['tāna waea', 'tāu waea', 'tāku waea', 'āu waea'] },
{ english: "His Phone", correct: "tāna waea", options: ['tāna waea', 'āna waea', 'tāku waea', 'tāu waea'] },
{ english: "My Car", correct: "tāku waka", options: ['āku waka', 'tāu waka', 'tāku waka', 'tāna waka'] },
{ english: "Your Car", correct: "tāu waka", options: ['tāna waka', 'tāu waka', 'tāku waka', 'āu waka'] },
{ english: "His Car", correct: "tāna waka", options: ['tāna waka', 'āna waka', 'tāu waka', 'tāku waka'] },
{ english: "My Job", correct: "tāku mahi", options: ['āu mahi', 'ōku mahi', 'tāku mahi', 'āna mahi'] },
{ english: "Your Job", correct: "tāu mahi", options: ['āna mahi', 'āku mahi', 'ōu mahi', 'tāu mahi'] },
{ english: "His Job", correct: "tāna mahi", options: ['ōna mahi', 'āu mahi', 'tāna mahi', 'āku mahi'] },
{ english: "My Dog", correct: "tāku kurī", options: ['tāku kurī', 'tāna kurī', 'āku kurī', 'tāu kurī'] },
{ english: "Your Dog", correct: "tāu kurī", options: ['tāu kurī', 'tāku kurī', 'tāna kurī', 'āu kurī'] },
{ english: "His Dog", correct: "tāna kurī", options: ['āna kurī', 'tāku kurī', 'tāu kurī', 'tāna kurī'] },
{ english: "My Cat", correct: "tāku ngeru", options: ['tāna ngeru', 'tāu ngeru', 'tāku ngeru', 'āku ngeru'] },
{ english: "Your Cat", correct: "tāu ngeru", options: ['tāu ngeru', 'tāna ngeru', 'tāku ngeru', 'āu ngeru'] },
{ english: "His Cat", correct: "tāna ngeru", options: ['tāku ngeru', 'tāna ngeru', 'āna ngeru', 'tāu ngeru'] },
{ english: "My Bag", correct: "tāku pēke", options: ['tāku pēke', 'āku pēke', 'tāu pēke', 'tāna pēke'] },
{ english: "Your Bag", correct: "tāu pēke", options: ['tāna pēke', 'tāu pēke', 'tāku pēke', 'āu pēke'] },
{ english: "His Bag", correct: "tāna pēke", options: ['tāku pēke', 'tāna pēke', 'āna pēke', 'tāu pēke'] },
{ english: "My Pen", correct: "tāku pene", options: ['tāu pene', 'tāna pene', 'tāku pene', 'āku pene'] },
{ english: "Your Pen", correct: "tāu pene", options: ['āu pene', 'tāna pene', 'tāku pene', 'tāu pene'] },
{ english: "His Pen", correct: "tāna pene", options: ['tāku pene', 'tāna pene', 'tāu pene', 'āna pene'] },
{ english: "My Glasses", correct: "ōku mōhiti", options: ['āku mōhiti', 'ōna mōhiti', 'ōku mōhiti', 'ōu mōhiti'] },
{ english: "Your Glasses", correct: "ōu mōhiti", options: ['ōna mōhiti', 'āu mōhiti', 'ōu mōhiti', 'ōku mōhiti'] },
{ english: "His Glasses", correct: "ōna mōhiti", options: ['ōu mōhiti', 'ōku mōhiti', 'ōna mōhiti', 'āna mōhiti'] },
{ english: "My Hats", correct: "ōku pōtae", options: ['ōu pōtae', 'āku pōtae', 'ōku pōtae', 'ōna pōtae'] },
{ english: "Your Hats", correct: "ōu pōtae", options: ['ōu pōtae', 'ōna pōtae', 'ōku pōtae', 'āu pōtae'] },
{ english: "His Hats", correct: "ōna pōtae", options: ['ōna pōtae', 'ōu pōtae', 'ōku pōtae', 'āna pōtae'] },
{ english: "Your Car", correct: "tāu waka", options: ['tāku waka', 'āu waka', 'tāna waka', 'tāu waka'] },
{ english: "Your Pen", correct: "tāu pene", options: ['tāu pene', 'tāna pene', 'tāku pene', 'āu pene'] },
{ english: "His Glasses", correct: "ōna mōhiti", options: ['ōu mōhiti', 'āna mōhiti', 'ōku mōhiti', 'ōna mōhiti'] },
{ english: "His Children", correct: "āna tamariki", options: ['āu tamariki', 'āna tamariki', 'ōna tamariki', 'āku tamariki'] },
{ english: "My Book", correct: "tāku pukapuka", options: ['tāu pukapuka', 'tāna pukapuka', 'tāku pukapuka', 'āku pukapuka'] },
{ english: "Your Phone", correct: "tāu waea", options: ['āu waea', 'tāku waea', 'tāna waea', 'tāu waea'] },
{ english: "His Job", correct: "tāna mahi", options: ['tāu mahi', 'ōna mahi', 'tāna mahi', 'āku mahi'] },
{ english: "His Cat", correct: "tāna ngeru", options: ['tāku ngeru', 'tāna ngeru', 'āna ngeru', 'tāu ngeru'] },
{ english: "My Chair", correct: "tōku tūru", options: ['tōna tūru', 'tōu tūru', 'ōku tūru', 'tōku tūru'] },
{ english: "Your Shoes", correct: "ōu hū", options: ['ōna hū', 'ōu hū', 'āu hū', 'ōku hū'] },
{ english: "My Parent", correct: "tōku matua", options: ['tōku matua', 'tōna matua', 'ōku mātua', 'tōu matua'] },
{ english: "Your Glasses", correct: "ōu mōhiti", options: ['ōna mōhiti', 'āu mōhiti', 'ōu mōhiti', 'ōku mōhiti'] },
{ english: "My Parent", correct: "tōku matua", options: ['ōku mātua', 'tōu matua', 'tōku matua', 'tōna matua'] },
{ english: "My Book", correct: "tāku pukapuka", options: ['āku pukapuka', 'tāu pukapuka', 'tāna pukapuka', 'tāku pukapuka'] },
{ english: "Your Glasses", correct: "ōu mōhiti", options: ['ōna mōhiti', 'ōu mōhiti', 'ōku mōhiti', 'āu mōhiti'] },
{ english: "Your School", correct: "tōu kura", options: ['tōku kura', 'tōu kura', 'ōna kura', 'tōna kura'] },
{ english: "His Parent", correct: "tōna matua", options: ['tōu matua', 'tōna matua', 'tōku matua', 'ōna mātua'] },
{ english: "My Chair", correct: "tōku tūru", options: ['ōku tūru', 'tōna tūru', 'tōku tūru', 'tōu tūru'] },
{ english: "My Book", correct: "tāku pukapuka", options: ['tāu pukapuka', 'tāna pukapuka', 'āku pukapuka', 'tāku pukapuka'] },
{ english: "His Children", correct: "āna tamariki", options: ['āna tamariki', 'ōna tamariki', 'āu tamariki', 'āku tamariki'] },
{ english: "My Chair", correct: "tōku tūru", options: ['tōku tūru', 'tōu tūru', 'ōku tūru', 'tōna tūru'] },
{ english: "Your Car", correct: "tāu waka", options: ['āu waka', 'tāu waka', 'tāku waka', 'tāna waka'] },
{ english: "His Glasses", correct: "ōna mōhiti", options: ['ōna mōhiti', 'ōku mōhiti', 'āna mōhiti', 'ōu mōhiti'] },
{ english: "His Chair", correct: "tōna tūru", options: ['tōna tūru', 'ōna tūru', 'tōu tūru', 'tōku tūru'] },
{ english: "His Shoes", correct: "ōna hū", options: ['ōku hū', 'āna hū', 'ōu hū', 'ōna hū'] },
{ english: "My House", correct: "tōku whare", options: ['tōu whare', 'ōku whare', 'tōna whare', 'tōku whare'] },
{ english: "His Glasses", correct: "ōna mōhiti", options: ['ōu mōhiti', 'āna mōhiti', 'ōna mōhiti', 'ōku mōhiti'] },
{ english: "Your Children", correct: "āu tamariki", options: ['ōu tamariki', 'āu tamariki', 'āku tamariki', 'āna tamariki'] },
{ english: "My Chair", correct: "tōku tūru", options: ['tōu tūru', 'ōku tūru', 'tōku tūru', 'tōna tūru'] },
{ english: "My Car", correct: "tāku waka", options: ['tāu waka', 'āku waka', 'tāku waka', 'tāna waka'] },
{ english: "Your Dog", correct: "tāu kurī", options: ['tāu kurī', 'tāku kurī', 'tāna kurī', 'āu kurī'] },
{ english: "My Hat", correct: "ōku pōtae", options: ['ōku pōtae', 'ōu pōtae', 'ōna pōtae', 'āku pōtae'] },
{ english: "His Children", correct: "āna tamariki", options: ['ōna tamariki', 'āna tamariki', 'āku tamariki', 'āu tamariki'] },
{ english: "My Book", correct: "tāku pukapuka", options: ['tāna pukapuka', 'āku pukapuka', 'tāu pukapuka', 'tāku pukapuka'] },
{ english: "Your Glasses", correct: "ōu mōhiti", options: ['āu mōhiti', 'ōku mōhiti', 'ōna mōhiti', 'ōu mōhiti'] },
{ english: "My Chair", correct: "tōku tūru", options: ['ōku tūru', 'tōna tūru', 'tōu tūru', 'tōku tūru'] },
{ english: "His Parent", correct: "tōna matua", options: ['tōna matua', 'ōna mātua', 'tōku matua', 'tōu matua'] },
{ english: "My Children", correct: "āku tamariki", options: ['āku tamariki', 'āu tamariki', 'āna tamariki', 'ōku tamariki'] },
{ english: "My Parent", correct: "tōku matua", options: ['tōu matua', 'ōku mātua', 'tōku matua', 'tōna matua'] },
{ english: "His Bag", correct: "tāna pēke", options: ['tāu pēke', 'tāku pēke', 'tāna pēke', 'āna pēke'] },
{ english: "My Parent", correct: "tōku matua", options: ['tōku matua', 'tōna matua', 'ōku mātua', 'tōu matua'] },
{ english: "Your Phone", correct: "tāu waea", options: ['tāku waea', 'tāu waea', 'āu waea', 'tāna waea'] },
{ english: "His Parent", correct: "tōna matua", options: ['tōna matua', 'tōku matua', 'tōu matua', 'ōna mātua'] },
{ english: "Your Bag", correct: "tāu pēke", options: ['tāna pēke', 'tāku pēke', 'āu pēke', 'tāu pēke'] },
{ english: "Your Glasses", correct: "ōu mōhiti", options: ['ōku mōhiti', 'ōu mōhiti', 'ōna mōhiti', 'āu mōhiti'] },
{ english: "Your Shoes", correct: "ōu hū", options: ['ōu hū', 'ōku hū', 'ōna hū', 'āu hū'] },
{ english: "Your Parent", correct: "tōu matua", options: ['tōku matua', 'tōu matua', 'tōna matua', 'ōna mātua'] },
{ english: "Your Bag", correct: "tāu pēke", options: ['tāna pēke', 'āu pēke', 'tāku pēke', 'tāu pēke'] },
{ english: "My Children", correct: "āku tamariki", options: ['āu tamariki', 'āku tamariki', 'ōku tamariki', 'āna tamariki'] }
];
function generateQuiz() {
const quizDiv = document.getElementById("quiz"); quizDiv.innerHTML = "";
const selectedQuestions = allQuestions.sort(() => 0.5 - Math.random()).slice(0, 10);
selectedQuestions.forEach((q, index) => {
const div = document.createElement("div"); div.className = "question";
div.innerHTML = `<label for="q${index}"><strong>${index + 1}. ${q.english}</strong></label>
<select id="q${index}" onchange="checkAnswer(${index}, '${q.correct}')">
<option value="">-- Select --</option>
${q.options.map(opt => `<option value="${opt}">${opt}</option>`).join("")}
</select>
<span id="feedback${index}" class="feedback"></span>`;
quizDiv.appendChild(div);
});
}
function checkAnswer(index, correct) {
const selected = document.getElementById(`q${index}`).value;
const feedback = document.getElementById(`feedback${index}`);
if (selected === correct) {
feedback.textContent = "✓ Correct";
feedback.className = "feedback correct";
} else {
feedback.textContent = "✗ Incorrect";
feedback.className = "feedback incorrect";
}
}
window.onload = generateQuiz;
</script>
</body>
</html>
Next: expand the card set with more pronouns like māku, mōku, māu, mōu, nāna, nōna, etc., using the same colour logic and structure
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Te Reo Māori Possessive Pronoun Flash Cards</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f0f8ff;
padding: 20px;
text-align: center;
}
.controls {
margin-bottom: 16px;
display: flex;
flex-wrap: wrap;
gap: 8px;
justify-content: center;
}
button {
padding: 8px 14px;
border: none;
border-radius: 6px;
background-color: #4682b4;
color: white;
font-weight: bold;
cursor: pointer;
}
button:hover { background-color: #315f7d; }
.status { margin: 8px 0 16px; font-size: 0.95rem; color: #333; }
.card-container {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 15px;
}
.card {
width: 160px;
height: 110px;
perspective: 1000px;
flex: 0 1 auto;
}
.card-inner {
position: relative;
width: 100%;
height: 100%;
text-align: center;
transition: transform 0.6s;
transform-style: preserve-3d;
cursor: pointer;
}
.card:hover .card-inner { transform: rotateY(180deg); }
.card-front, .card-back {
position: absolute;
width: 100%;
height: 100%;
backface-visibility: hidden;
display: flex;
align-items: center;
justify-content: center;
border-radius: 8px;
color: white;
font-size: 16px;
font-weight: bold;
padding: 10px;
box-sizing: border-box;
}
.card-back {
background-color: #32cd32; /* keep your original back colour */
transform: rotateY(180deg);
color: black;
}
/* Colour coding with more variation, 2 shades per group */
.my-dark { background-color: #B71C1C; } /* Mine O-category (dark red) */
.my-light { background-color: #FF8A80; } /* Mine A-category (light red) */
.your-dark { background-color: #0D47A1; } /* Yours O-category (dark blue) */
.your-light { background-color: #64B5F6; } /* Yours A-category (light blue) */
.his-dark { background-color: #1B5E20; } /* Theirs O-category (dark green) */
.his-light { background-color: #81C784; } /* Theirs A-category (light green) */
.youandi-dark { background-color: #4A148C; } /* Inclusive O-category (dark purple) */
.youandi-light { background-color: #BA68C8; } /* Inclusive A-category (light purple) */
.friends-dark { background-color: #E65100; } /* Exclusive O-category (dark orange) */
.friends-light { background-color: #FFB74D; } /* Exclusive A-category (light orange) */
.youplural-dark { background-color: #0D47A1; } /* You(2+/3+) O-category (dark blue) */
.youplural-light { background-color: #64B5F6; }/* You(2+/3+) A-category (light blue) */
.they-dark { background-color: #1B5E20; } /* They O-category (dark green) */
.they-light { background-color: #81C784; } /* They A-category (light green) */
</style>
</head>
<body>
<h2>Ngā Kārāti – Possessive Pronouns (A & O Categories)</h2>
<div class="controls">
<button onclick="resetFilters()">All</button>
<button onclick="setFilter('category','A')">A-category</button>
<button onclick="setFilter('category','O')">O-category</button>
<button onclick="setFilter('number','singular')">Single thing</button>
<button onclick="setFilter('number','plural')">Plural things</button>
<button onclick="setFilter('group','mine')">Mine</button>
<button onclick="setFilter('group','yours')">Yours</button>
<button onclick="setFilter('group','theirs')">Theirs</button>
<button onclick="setFilter('group','exclusive')">Ours (exclusive)</button>
<button onclick="setFilter('group','inclusive')">Us (inclusive)</button>
</div>
<div class="status" id="status"></div>
<div class="card-container" id="cards"></div>
<script>
// Data: COMPLETE set, with metadata for filters.
// category: 'A' or 'O' | number: 'singular' or 'plural'
// group: 'mine' | 'yours' | 'theirs' | 'inclusive' | 'exclusive'
const flashCards = [
// My (mine)
{ front: "tāku", back: "My (1 person), singular item, A-category", class: "my-light", category:"A", number:"singular", group:"mine" },
{ front: "tōku", back: "My (1 person), singular item, O-category", class: "my-dark", category:"O", number:"singular", group:"mine" },
{ front: "āku", back: "My (1 person), plural items, A-category", class: "my-light", category:"A", number:"plural", group:"mine" },
{ front: "ōku", back: "My (1 person), plural items, O-category", class: "my-dark", category:"O", number:"plural", group:"mine" },
// Your (singular) → yours
{ front: "tāu", back: "Your (1 person), singular item, A-category", class: "your-light", category:"A", number:"singular", group:"yours" },
{ front: "tōu", back: "Your (1 person), singular item, O-category", class: "your-dark", category:"O", number:"singular", group:"yours" },
{ front: "āu", back: "Your (1 person), plural items, A-category", class: "your-light", category:"A", number:"plural", group:"yours" },
{ front: "ōu", back: "Your (1 person), plural items, O-category", class: "your-dark", category:"O", number:"plural", group:"yours" },
// His/Her → treat as THEIRS (same colour family as they)
{ front: "tāna", back: "His/Her/Their (1), singular item, A-category", class: "his-light", category:"A", number:"singular", group:"theirs" },
{ front: "tōna", back: "His/Her/Their (1), singular item, O-category", class: "his-dark", category:"O", number:"singular", group:"theirs" },
{ front: "āna", back: "His/Her/Their (1), plural items, A-category", class: "his-light", category:"A", number:"plural", group:"theirs" },
{ front: "ōna", back: "His/Her/Their (1), plural items, O-category", class: "his-dark", category:"O", number:"plural", group:"theirs" },
// You and I (tāua) → inclusive
{ front: "tā tāua", back: "You and I (2), singular item, A-category", class: "youandi-light", category:"A", number:"singular", group:"inclusive" },
{ front: "tō tāua", back: "You and I (2), singular item, O-category", class: "youandi-dark", category:"O", number:"singular", group:"inclusive" },
{ front: "ā tāua", back: "You and I (2), plural items, A-category", class: "youandi-light", category:"A", number:"plural", group:"inclusive" },
{ front: "ō tāua", back: "You and I (2), plural items, O-category", class: "youandi-dark", category:"O", number:"plural", group:"inclusive" },
// Friends and I (māua) → exclusive
{ front: "tā māua", back: "Friends and I (2), singular item, A-category", class: "friends-light", category:"A", number:"singular", group:"exclusive" },
{ front: "tō māua", back: "Friends and I (2), singular item, O-category", class: "friends-dark", category:"O", number:"singular", group:"exclusive" },
{ front: "ā māua", back: "Friends and I (2), plural items, A-category", class: "friends-light", category:"A", number:"plural", group:"exclusive" },
{ front: "ō māua", back: "Friends and I (2), plural items, O-category", class: "friends-dark", category:"O", number:"plural", group:"exclusive" },
// You (2 people) → yours
{ front: "tā kōrua", back: "You (2), singular item, A-category", class: "youplural-light", category:"A", number:"singular", group:"yours" },
{ front: "tō kōrua", back: "You (2), singular item, O-category", class: "youplural-dark", category:"O", number:"singular", group:"yours" },
{ front: "ā kōrua", back: "You (2), plural items, A-category", class: "youplural-light", category:"A", number:"plural", group:"yours" },
{ front: "ō kōrua", back: "You (2), plural items, O-category", class: "youplural-dark", category:"O", number:"plural", group:"yours" },
// They (2 people) → theirs
{ front: "tā rāua", back: "They (2), singular item, A-category", class: "they-light", category:"A", number:"singular", group:"theirs" },
{ front: "tō rāua", back: "They (2), singular item, O-category", class: "they-dark", category:"O", number:"singular", group:"theirs" },
{ front: "ā rāua", back: "They (2), plural items, A-category", class: "they-light", category:"A", number:"plural", group:"theirs" },
{ front: "ō rāua", back: "They (2), plural items, O-category", class: "they-dark", category:"O", number:"plural", group:"theirs" },
// You and I (3+ – tātou) → inclusive
{ front: "tā tātou", back: "You and I (3+), singular item, A-category", class: "youandi-light", category:"A", number:"singular", group:"inclusive" },
{ front: "tō tātou", back: "You and I (3+), singular item, O-category", class: "youandi-dark", category:"O", number:"singular", group:"inclusive" },
{ front: "ā tātou", back: "You and I (3+), plural items, A-category", class: "youandi-light", category:"A", number:"plural", group:"inclusive" },
{ front: "ō tātou", back: "You and I (3+), plural items, O-category", class: "youandi-dark", category:"O", number:"plural", group:"inclusive" },
// Friends and I (3+ – mātou) → exclusive
{ front: "tā mātou", back: "Friends and I (3+), singular item, A-category", class: "friends-light", category:"A", number:"singular", group:"exclusive" },
{ front: "tō mātou", back: "Friends and I (3+), singular item, O-category", class: "friends-dark", category:"O", number:"singular", group:"exclusive" },
{ front: "ā mātou", back: "Friends and I (3+), plural items, A-category", class: "friends-light", category:"A", number:"plural", group:"exclusive" },
{ front: "ō mātou", back: "Friends and I (3+), plural items, O-category", class: "friends-dark", category:"O", number:"plural", group:"exclusive" },
// You (3+ – koutou) → yours
{ front: "tā koutou", back: "You (3+), singular item, A-category", class: "youplural-light", category:"A", number:"singular", group:"yours" },
{ front: "tō koutou", back: "You (3+), singular item, O-category", class: "youplural-dark", category:"O", number:"singular", group:"yours" },
{ front: "ā koutou", back: "You (3+), plural items, A-category", class: "youplural-light", category:"A", number:"plural", group:"yours" },
{ front: "ō koutou", back: "You (3+), plural items, O-category", class: "youplural-dark", category:"O", number:"plural", group:"yours" },
// They (3+ – rātou) → theirs
{ front: "tā rātou", back: "They (3+), singular item, A-category", class: "they-light", category:"A", number:"singular", group:"theirs" },
{ front: "tō rātou", back: "They (3+), singular item, O-category", class: "they-dark", category:"O", number:"singular", group:"theirs" },
{ front: "ā rātou", back: "They (3+), plural items, A-category", class: "they-light", category:"A", number:"plural", group:"theirs" },
{ front: "ō rātou", back: "They (3+), plural items, O-category", class: "they-dark", category:"O", number:"plural", group:"theirs" }
];
const container = document.getElementById("cards");
const status = document.getElementById("status");
const active = { category: null, number: null, group: null };
function renderCards(list) {
container.innerHTML = "";
list.forEach(card => {
container.innerHTML += `
<div class="card" data-cat="${card.category}" data-num="${card.number}" data-group="${card.group}">
<div class="card-inner">
<div class="card-front ${card.class}">${card.front}</div>
<div class="card-back">${card.back}</div>
</div>
</div>
`;
});
}
function applyFilters() {
const filtered = flashCards.filter(c =>
(!active.category || c.category === active.category) &&
(!active.number || c.number === active.number) &&
(!active.group || c.group === active.group)
);
renderCards(filtered);
updateStatus();
}
function setFilter(type, value) {
// cumulative: set or overwrite that dimension only
active[type] = value;
applyFilters();
}
function resetFilters() {
active.category = active.number = active.group = null;
applyFilters();
}
function updateStatus() {
const parts = [];
if (active.category) parts.push(`${active.category}-category`);
if (active.number) parts.push(active.number === 'singular' ? 'single thing' : 'plural things');
if (active.group) {
const label = active.group === 'inclusive' ? 'us (inclusive)'
: active.group === 'exclusive' ? 'ours (exclusive)'
: active.group;
parts.push(label);
}
status.textContent = parts.length ? `Filters: ${parts.join(' + ')}` : 'Filters: (none)';
}
// initial render
applyFilters();
</script>
</body>
</html>