{"id":2016,"date":"2026-05-29T16:35:47","date_gmt":"2026-05-29T08:35:47","guid":{"rendered":"https:\/\/wmea.charity\/?p=2016"},"modified":"2026-05-29T16:38:43","modified_gmt":"2026-05-29T08:38:43","slug":"elementary-grammar-in-use-ch-1-10","status":"publish","type":"post","link":"https:\/\/wmea.charity\/index.php\/elementary-grammar-in-use-ch-1-10\/","title":{"rendered":"Elementary Grammar In Use Ch 1-10"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"2016\" class=\"elementor elementor-2016\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9ee6b0c e-flex e-con-boxed e-con e-parent\" data-id=\"9ee6b0c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-45c5371 elementor-widget elementor-widget-html\" data-id=\"45c5371\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"zh-Hant\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title>English Grammar Explorer: Chapters 1-10 Quiz & Worksheet (Bigger Font)<\/title>\n  <!-- Tailwind CSS -->\n  <script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\n  <!-- Google Fonts -->\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n  <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Fredoka:wght@300..700&family=Noto+Sans+TC:wght@300..900&display=swap\" rel=\"stylesheet\">\n  \n  <style>\n    body {\n      font-family: 'Fredoka', 'Noto Sans TC', sans-serif;\n    }\n    @media print {\n      .no-print {\n        display: none !important;\n      }\n      .print-page-break {\n        page-break-after: always;\n      }\n      body {\n        background-color: white !important;\n        color: black !important;\n      }\n    }\n  <\/style>\n<\/head>\n<body class=\"bg-gradient-to-b from-amber-50 via-sky-50 to-indigo-50 min-h-screen text-slate-800 pb-12\">\n\n  <!-- ================= HEADER SECTION (no-print) ================= -->\n  <header class=\"no-print bg-white\/95 backdrop-blur-md sticky top-0 z-50 shadow-sm border-b border-slate-100\">\n    <div class=\"max-w-6xl mx-auto px-4 py-3 flex flex-wrap items-center justify-between gap-4\">\n      <div class=\"flex items-center gap-2.5\">\n        <span class=\"text-3xl\">\ud83c\udf92<\/span>\n        <div>\n          <h1 class=\"text-xl md:text-2xl font-black bg-gradient-to-r from-amber-500 via-pink-500 to-indigo-600 bg-clip-text text-transparent\">\n            Grammar Explorer (Chapters 1-10)\n          <\/h1>\n          <p class=\"text-[11px] text-slate-500 font-bold\">\u5c0f\u4e00\u5c0f\u4e8c\u82f1\u6587\u6587\u6cd5\u4e92\u52d5\u7df4\u7fd2\u8207\u5217\u5370\u7cfb\u7d71 (\u5b57\u578b\u653e\u5927\u7248)<\/p>\n        <\/div>\n      <\/div>\n      \n      <!-- Controls -->\n      <div class=\"flex items-center gap-3\">\n        <!-- Mode Switcher -->\n        <div class=\"bg-slate-100 p-1 rounded-xl flex gap-1 text-xs font-black\">\n          <button id=\"btn-practice-mode\" onclick=\"switchMode('practice')\" class=\"px-3 py-1.5 rounded-lg bg-white text-indigo-600 shadow-sm transition-all flex items-center gap-1\">\n            \ud83c\udfaf \u4e92\u52d5\u7df4\u7fd2\n          <\/button>\n          <button id=\"btn-print-mode\" onclick=\"switchMode('print')\" class=\"px-3 py-1.5 rounded-lg text-slate-500 hover:text-slate-800 transition-all flex items-center gap-1\">\n            \ud83d\udda8\ufe0f \u5217\u5370\u8003\u5377\n          <\/button>\n        <\/div>\n\n        <!-- Sound toggle -->\n        <button id=\"btn-sound\" onclick=\"toggleSound()\" class=\"p-2 rounded-xl bg-slate-100 hover:bg-slate-200 text-slate-600 transition-all\" title=\"\u958b\u95dc\u97f3\u6548\">\n          \ud83d\udd0a\n        <\/button>\n      <\/div>\n    <\/div>\n  <\/header>\n\n  <main class=\"max-w-6xl mx-auto px-4 mt-6\">\n    \n    <!-- ========================================================= -->\n    <!-- ================= PRACTICE MODE CONTAINER =============== -->\n    <!-- ========================================================= -->\n    <div id=\"practice-container\" class=\"no-print grid grid-cols-1 lg:grid-cols-12 gap-6\">\n      \n      <!-- Left Sidebar: Chapter Selection -->\n      <div class=\"lg:col-span-4 bg-white\/80 backdrop-blur rounded-3xl p-5 border border-slate-100 shadow-sm h-fit\">\n        <h3 class=\"text-sm font-black text-slate-400 uppercase tracking-wider mb-3 flex items-center gap-1.5\">\n          \ud83d\uddfa\ufe0f \u9078\u64c7\u4f60\u7684\u6587\u6cd5\u5cf6\u5dbc\n        <\/h3>\n        <div class=\"space-y-2.5\" id=\"practice-chapter-list\">\n          <!-- Dynamic chapters populated by JS -->\n        <\/div>\n      <\/div>\n\n      <!-- Right Area: Question Card -->\n      <div class=\"lg:col-span-8 space-y-4\">\n        \n        <!-- Score and Chapter Title Banner -->\n        <div class=\"bg-gradient-to-r from-indigo-500 via-purple-500 to-pink-500 text-white rounded-3xl p-6 shadow-md flex justify-between items-center\">\n          <div>\n            <span id=\"quiz-chapter-num\" class=\"bg-white\/20 px-2.5 py-1 rounded-full text-[10px] font-black tracking-wider uppercase\">UNIT 01<\/span>\n            <h2 id=\"quiz-chapter-title\" class=\"text-xl md:text-2xl font-black mt-1.5\">Loading Chapter...<\/h2>\n            <p id=\"quiz-chapter-desc\" class=\"text-xs md:text-sm text-white\/80 font-medium mt-1\">Loading description...<\/p>\n          <\/div>\n          <!-- score circle -->\n          <div class=\"text-center bg-white\/10 px-4 py-2.5 rounded-2xl border border-white\/10 min-w-[80px]\">\n            <div id=\"quiz-score\" class=\"text-2xl font-black\">0 \/ 20<\/div>\n            <div class=\"text-[9px] font-bold text-white\/70 uppercase\">Score<\/div>\n          <\/div>\n        <\/div>\n\n        <!-- Step indicators -->\n        <div id=\"practice-progress-steps\" class=\"flex h-2.5 bg-slate-200\/50 rounded-full overflow-hidden\">\n          <!-- Populated by JS -->\n        <\/div>\n\n        <!-- Quiz Panel Card -->\n        <div id=\"quiz-card\" class=\"bg-white rounded-3xl p-6 md:p-8 border border-slate-100 shadow-lg relative min-h-[400px] flex flex-col justify-between\">\n          \n          <div>\n            <!-- Mascot speaking -->\n            <div class=\"flex items-start gap-3 bg-amber-50\/70 border border-amber-100\/60 p-4 rounded-2xl mb-6\">\n              <span class=\"text-3xl animate-bounce\">\ud83e\udd89<\/span>\n              <div>\n                <h4 class=\"text-xs font-black text-amber-700 uppercase tracking-widest\">\u8c93\u982d\u9df9\u5c0f\u53ee\u5680\uff1a<\/h4>\n                <p class=\"text-xs md:text-sm font-bold text-slate-600\">\u770b\u4ed4\u7d30\u53e5\u5b50\u88e1\u7684\u95dc\u9375\u5b57\uff0c\u76f8\u4fe1\u81ea\u5df1\uff0c\u9078\u51fa\u6b63\u78ba\u7684\u7b54\u6848\uff01<\/p>\n              <\/div>\n            <\/div>\n\n            <!-- Question sentence -->\n            <div class=\"bg-slate-50 border border-slate-100 rounded-2xl p-8 text-center shadow-inner mb-6\">\n              <span class=\"text-[10px] font-black text-slate-400 block mb-1\">QUESTION <span id=\"quiz-q-num\">1<\/span> of 20<\/span>\n              <h3 id=\"quiz-question-text\" class=\"text-2xl md:text-3xl font-extrabold text-slate-800 tracking-wide font-mono leading-relaxed\">\n                Loading question sentence...\n              <\/h3>\n            <\/div>\n\n            <!-- Options (3 Options for P1\/P2) -->\n            <div class=\"grid grid-cols-1 md:grid-cols-3 gap-4\" id=\"quiz-options-container\">\n              <!-- JS generates button here -->\n            <\/div>\n          <\/div>\n\n          <!-- Explanation\/Hint Area -->\n          <div id=\"quiz-explanation-box\" class=\"hidden mt-6 p-4 rounded-2xl flex gap-3 animate-fadeIn border transition-all\">\n            <!-- Populated on click -->\n          <\/div>\n\n          <!-- Next Action buttons -->\n          <div class=\"flex justify-end pt-5 mt-6 border-t border-slate-100\">\n            <button id=\"btn-quiz-submit\" onclick=\"submitPracticeAnswer()\" disabled class=\"px-7 py-4 rounded-2xl font-black text-sm md:text-base transition-all flex items-center gap-1.5 bg-slate-100 text-slate-400 cursor-not-allowed\">\n              \u6aa2\u67e5\u7b54\u6848 \ud83d\udca1\n            <\/button>\n            <button id=\"btn-quiz-next\" onclick=\"nextPracticeQuestion()\" class=\"hidden px-7 py-4 rounded-2xl font-black text-sm md:text-base text-white bg-gradient-to-r from-indigo-500 to-purple-600 shadow-md hover:brightness-110 active:scale-95 transition-all flex items-center gap-1.5\">\n              \u4e0b\u4e00\u984c \u2794\n            <\/button>\n          <\/div>\n\n        <\/div>\n\n      <\/div>\n    <\/div>\n\n    <!-- ========================================================= -->\n    <!-- ================= PRINT WORKSHEET MODE ================== -->\n    <!-- ========================================================= -->\n    <div id=\"print-container\" class=\"hidden space-y-6\">\n      \n      <!-- Control Panel (no-print) -->\n      <div class=\"no-print bg-white rounded-3xl p-6 border border-slate-100 shadow-md flex flex-wrap items-center justify-between gap-4\">\n        <div class=\"space-y-1\">\n          <h3 class=\"font-black text-base text-slate-800\">\ud83d\udda8\ufe0f \u5217\u5370\u8207\u6392\u7248\u8a2d\u5b9a\u63a7\u5236\u53f0<\/h3>\n          <p class=\"text-xs text-slate-400\">\u81ea\u8a02\u8f38\u51fa\u5167\u5bb9\uff0c\u4e00\u9375\u7522\u51fa\u5b8c\u7f8e\u5be6\u9ad4\u8003\u5377\u3002<\/p>\n        <\/div>\n        \n        <div class=\"flex flex-wrap items-center gap-4 text-xs font-bold\">\n          <!-- Toggle Answers -->\n          <label class=\"flex items-center gap-2 cursor-pointer bg-slate-50 px-3 py-2 rounded-xl border border-slate-100 hover:bg-slate-100 transition-all\">\n            <input type=\"checkbox\" id=\"chk-show-answers\" onchange=\"togglePrintDetails()\" checked class=\"w-4 h-4 text-indigo-600 rounded\">\n            <span>\u986f\u793a\u6b63\u78ba\u7b54\u6848 (\u52a0\u5e95\u7dda)<\/span>\n          <\/label>\n          \n          <!-- Toggle Hints -->\n          <label class=\"flex items-center gap-2 cursor-pointer bg-slate-50 px-3 py-2 rounded-xl border border-slate-100 hover:bg-slate-100 transition-all\">\n            <input type=\"checkbox\" id=\"chk-show-hints\" onchange=\"togglePrintDetails()\" checked class=\"w-4 h-4 text-indigo-600 rounded\">\n            <span>\u986f\u793a\u4e2d\u6587\u89e3\u984c\u63d0\u793a<\/span>\n          <\/label>\n\n          <!-- Print Button -->\n          <button onclick=\"window.print()\" class=\"bg-indigo-600 hover:bg-indigo-700 text-white px-5 py-2.5 rounded-xl transition-all shadow-md shadow-indigo-100 flex items-center gap-1\">\n            <span>\ud83d\udda8\ufe0f \u958b\u59cb\u5217\u5370\u7d19\u672c\u8003\u5377<\/span>\n          <\/button>\n        <\/div>\n      <\/div>\n\n      <!-- Actual Printable Document Sheets -->\n      <div class=\"bg-white rounded-3xl p-6 md:p-12 border border-slate-100 shadow-lg text-slate-900\" id=\"print-document\">\n        \n        <!-- Printable Cover Header -->\n        <div class=\"border-b-4 border-slate-800 pb-4 mb-8 text-center relative\">\n          <h1 class=\"text-2xl md:text-3xl font-extrabold uppercase tracking-wide\">English Grammar Exercises for Primary 1 & 2<\/h1>\n          <p class=\"text-sm font-bold text-slate-500 mt-1\">Based on Essential Grammar in Use (Chapters 1-10) \u2014 200 Questions<\/p>\n          \n          <!-- Student Info fields -->\n          <div class=\"grid grid-cols-3 gap-4 max-w-lg mx-auto mt-6 text-xs font-bold text-slate-700\">\n            <div class=\"border-b border-slate-400 pb-1 text-left\">Class: _________________<\/div>\n            <div class=\"border-b border-slate-400 pb-1 text-left\">Name: _________________<\/div>\n            <div class=\"border-b border-slate-400 pb-1 text-left\">Score: ______ \/ 200<\/div>\n          <\/div>\n        <\/div>\n\n        <!-- Render chapters recursively here by JS -->\n        <div id=\"print-chapters-content\" class=\"space-y-12\">\n          <!-- Populated dynamically by JS to guarantee all 200 questions are error-free -->\n        <\/div>\n\n      <\/div>\n    <\/div>\n\n  <\/main>\n\n  <!-- ==================== JS CONTROLLER & DATASET ==================== -->\n  <script>\n    \/\/ Audio Context Sound Engine\n    let soundOn = true;\n    function playSound(type) {\n      if (!soundOn) return;\n      try {\n        const AudioContext = window.AudioContext || window.webkitAudioContext;\n        if (!AudioContext) return;\n        const ctx = new AudioContext();\n        if (type === 'correct') {\n          const osc1 = ctx.createOscillator();\n          const osc2 = ctx.createOscillator();\n          const gain = ctx.createGain();\n          osc1.type = 'sine'; osc2.type = 'sine';\n          osc1.frequency.setValueAtTime(523.25, ctx.currentTime);\n          osc1.frequency.setValueAtTime(659.25, ctx.currentTime + 0.08);\n          osc2.frequency.setValueAtTime(1046.5, ctx.currentTime + 0.08);\n          gain.gain.setValueAtTime(0.06, ctx.currentTime);\n          gain.gain.exponentialRampToValueAtTime(0.005, ctx.currentTime + 0.3);\n          osc1.connect(gain); osc2.connect(gain); gain.connect(ctx.destination);\n          osc1.start(); osc2.start();\n          osc1.stop(ctx.currentTime + 0.3); osc2.stop(ctx.currentTime + 0.3);\n        } else if (type === 'incorrect') {\n          const osc = ctx.createOscillator();\n          const gain = ctx.createGain();\n          osc.type = 'triangle';\n          osc.frequency.setValueAtTime(160, ctx.currentTime);\n          osc.frequency.linearRampToValueAtTime(100, ctx.currentTime + 0.2);\n          gain.gain.setValueAtTime(0.1, ctx.currentTime);\n          gain.gain.exponentialRampToValueAtTime(0.005, ctx.currentTime + 0.25);\n          osc.connect(gain); gain.connect(ctx.destination);\n          osc.start(); osc.stop(ctx.currentTime + 0.25);\n        } else if (type === 'click') {\n          const osc = ctx.createOscillator();\n          const gain = ctx.createGain();\n          osc.type = 'sine';\n          osc.frequency.setValueAtTime(600, ctx.currentTime);\n          gain.gain.setValueAtTime(0.02, ctx.currentTime);\n          gain.gain.exponentialRampToValueAtTime(0.005, ctx.currentTime + 0.05);\n          osc.connect(gain); gain.connect(ctx.destination);\n          osc.start(); osc.stop(ctx.currentTime + 0.05);\n        }\n      } catch (e) { console.log('Web Audio unsupported'); }\n    }\n\n    function toggleSound() {\n      soundOn = !soundOn;\n      document.getElementById('btn-sound').innerText = soundOn ? \"\ud83d\udd0a\" : \"\ud83d\udd07\";\n    }\n\n    \/\/ Complete robust database of Chapters 1 to 10. Each chapter contains exactly 20 questions (3 choices each).\n    const db = [\n      {\n        id: 1,\n        title: \"Chapter 1: am \/ is \/ are\",\n        desc: \"\u5b78\u7fd2 be \u52d5\u8a5e (I am, He\/She\/It is, You\/We\/They are) \u7684\u57fa\u672c\u80af\u5b9a\u53e5\u8207\u5426\u5b9a\u53e5\u642d\u914d\u3002\",\n        questions: [\n          { q: \"I ___ a big boy.\", options: [\"am\", \"is\", \"are\"], ans: 0, help: \"\u770b\u898b 'I' (\u6211) \u8981\u642d\u914d 'am' \u54e6\uff01\" },\n          { q: \"She ___ my good friend.\", options: [\"am\", \"is\", \"are\"], ans: 1, help: \"\u4e3b\u89d2\u662f\u55ae\u6578\u7684 'She' (\u5979)\uff0c\u8981\u7528 'is'\u3002\" },\n          { q: \"We ___ happy today.\", options: [\"am\", \"is\", \"are\"], ans: 2, help: \"\u4e3b\u89d2\u662f\u8907\u6578\u7684 'We' (\u6211\u5011)\uff0c\u8981\u7528 'are'\u3002\" },\n          { q: \"The cat ___ very cute.\", options: [\"am\", \"is\", \"are\"], ans: 1, help: \"\u55ae\u6578\u4e00\u96bb\u8c93 'The cat'\uff0c\u8981\u642d\u914d 'is'\u3002\" },\n          { q: \"You ___ a sweet girl.\", options: [\"am\", \"is\", \"are\"], ans: 2, help: \"\u770b\u5230 'You' (\u4f60) \u7121\u8ad6\u55ae\u8907\u6578\uff0c\u4e00\u5b9a\u8981\u914d 'are'\u3002\" },\n          { q: \"The toys ___ in the box.\", options: [\"am\", \"is\", \"are\"], ans: 2, help: \"\u9019\u88e1\u6709\u597d\u591a\u500b\u73a9\u5177 'toys' (\u8907\u6578)\uff0c\u8981\u7528 'are'\u3002\" },\n          { q: \"My father ___ a tall doctor.\", options: [\"am\", \"is\", \"are\"], ans: 1, help: \"\u7238\u7238 'My father' \u662f\u55ae\u6578\u7684\u4e00\u500b\u4eba\uff0c\u914d 'is'\u3002\" },\n          { q: \"It ___ a sunny day.\", options: [\"am\", \"is\", \"are\"], ans: 1, help: \"\u4e3b\u89d2\u662f 'It' (\u5b83\/\u5929\u6c23)\uff0c\u8981\u7528 'is'\u3002\" },\n          { q: \"They ___ my little brothers.\", options: [\"am\", \"is\", \"are\"], ans: 2, help: \"\u4e3b\u89d2\u662f 'They' (\u4ed6\u5011)\uff0c\u8981\u7528 'are'\u3002\" },\n          { q: \"I ___ not hungry now.\", options: [\"am\", \"is\", \"are\"], ans: 0, help: \"\u6211\u73fe\u5728\u4e0d\u9913\u3002'I' \u642d\u914d 'am'\u3002\" },\n          { q: \"My sister and I ___ sisters.\", options: [\"am\", \"is\", \"are\"], ans: 2, help: \"\u300c\u6211\u59d0\u59d0\u548c\u6211\u300d\u6709\u5169\u500b\u4eba\uff08\u8907\u6578\uff09\uff0c\u6240\u4ee5\u8981\u7528 'are' \u5594\uff01\" },\n          { q: \"The apples ___ red and sweet.\", options: [\"am\", \"is\", \"are\"], ans: 2, help: \"\u6709\u5f88\u591a\u9846\u860b\u679c 'apples'\uff0c\u6240\u4ee5\u8981\u7528\u8907\u6578\u7684 'are'\u3002\" },\n          { q: \"This pencil ___ short.\", options: [\"am\", \"is\", \"are\"], ans: 1, help: \"\u9019\u679d\u7b46 'This pencil' \u662f\u4e00\u679d\uff08\u55ae\u6578\uff09\uff0c\u7528 'is'\u3002\" },\n          { q: \"He ___ very clever.\", options: [\"am\", \"is\", \"are\"], ans: 1, help: \"\u4e3b\u89d2\u662f\u55ae\u6578\u7684 'He' (\u4ed6)\uff0c\u8981\u7528 'is'\u3002\" },\n          { q: \"You and Sam ___ very kind.\", options: [\"am\", \"is\", \"are\"], ans: 2, help: \"\u300c\u4f60\u548c\u5c71\u59c6\u300d\u6709\u5169\u500b\u4eba\uff0c\u662f\u8907\u6578\uff0c\u6240\u4ee5\u8981\u7528 'are'\u3002\" },\n          { q: \"The water ___ in the cup.\", options: [\"am\", \"is\", \"are\"], ans: 1, help: \"\u6c34 'water' \u662f\u4e0d\u53ef\u6578\u540d\u8a5e\uff0c\u7576\u4f5c\u55ae\u6578\u770b\uff0c\u6240\u4ee5\u914d 'is'\u3002\" },\n          { q: \"I ___ seven years old.\", options: [\"am\", \"is\", \"are\"], ans: 0, help: \"\u6211\u4e03\u6b72\u4e86\u3002'I' \u6c38\u9060\u642d\u914d 'am' \u5594\uff01\" },\n          { q: \"The little birds ___ in the sky.\", options: [\"am\", \"is\", \"are\"], ans: 2, help: \"\u5c0f\u9ce5\u5011 'birds' \u6709\u5f88\u591a\u96bb\uff0c\u8981\u7528 'are'\u3002\" },\n          { q: \"My mom ___ beautiful.\", options: [\"am\", \"is\", \"are\"], ans: 1, help: \"\u5abd\u5abd 'My mom' \u662f\u4e00\u500b\u4eba\uff08\u55ae\u6578\uff09\uff0c\u914d 'is'\u3002\" },\n          { q: \"We ___ at school now.\", options: [\"am\", \"is\", \"are\"], ans: 2, help: \"\u6211\u5011 'We' \u5728\u5b78\u6821\uff0c\u8907\u6578\u8981\u642d\u914d 'are'\u3002\" }\n        ]\n      },\n      {\n        id: 2,\n        title: \"Chapter 2: am \/ is \/ are (Questions)\",\n        desc: \"\u554f\u554f\u984c\u7684\u6642\u5019\uff0c\u8981\u628a be \u52d5\u8a5e\u653e\u5230\u53e5\u5b50\u7684\u6700\u524d\u9762\u54e6\uff01\",\n        questions: [\n          { q: \"___ you happy today?\", options: [\"Am\", \"Is\", \"Are\"], ans: 2, help: \"\u4e3b\u8a5e\u662f 'you'\uff0c\u554f\u53e5\u7684 be \u52d5\u8a5e\u7528 'Are'\u3002\" },\n          { q: \"___ she your sister?\", options: [\"Am\", \"Is\", \"Are\"], ans: 1, help: \"\u4e3b\u8a5e\u662f 'she' (\u55ae\u6578)\uff0c\u554f\u53e5\u8981\u7528 'Is' \u958b\u59cb\u3002\" },\n          { q: \"___ I in your team?\", options: [\"Am\", \"Is\", \"Are\"], ans: 0, help: \"\u4e3b\u8a5e\u662f 'I'\uff0c\u554f\u53e5\u7684 be \u52d5\u8a5e\u7528 'Am' \u8d77\u982d\u3002\" },\n          { q: \"___ they in the classroom?\", options: [\"Am\", \"Is\", \"Are\"], ans: 2, help: \"\u4e3b\u8a5e\u662f 'they' (\u4ed6\u5011)\uff0c\u554f\u53e5\u8981\u7528 'Are'\u3002\" },\n          { q: \"___ your dog brown?\", options: [\"Am\", \"Is\", \"Are\"], ans: 1, help: \"\u4f60\u7684\u72d7 'your dog' \u662f\u55ae\u6578\uff0c\u6240\u4ee5\u554f\u53e5\u914d 'Is'\u3002\" },\n          { q: \"___ the books new?\", options: [\"Am\", \"Is\", \"Are\"], ans: 2, help: \"\u66f8\u672c\u5011 'the books' \u662f\u8907\u6578\uff0c\u8981\u7528 'Are'\u3002\" },\n          { q: \"Where ___ my schoolbag?\", options: [\"am\", \"is\", \"are\"], ans: 1, help: \"\u66f8\u5305 'my schoolbag' \u662f\u55ae\u6578\uff0c\u6240\u4ee5\u554f\uff1aWhere is...\uff1f\" },\n          { q: \"How old ___ you?\", options: [\"am\", \"is\", \"are\"], ans: 2, help: \"\u9019\u984c\u662f\u5e38\u898b\u554f\u53e5\uff1aHow old are you\uff1f\" },\n          { q: \"___ it a cute monkey?\", options: [\"Am\", \"Is\", \"Are\"], ans: 1, help: \"\u4e3b\u8a5e\u662f 'it'\uff0c\u6240\u4ee5\u554f\u53e5\u7528 'Is' \u5594\uff01\" },\n          { q: \"What color ___ your pens?\", options: [\"am\", \"is\", \"are\"], ans: 2, help: \"\u7b46 'pens' \u662f\u8907\u6578\uff0c\u6240\u4ee5\u8981\u7528 'are'\u3002\" },\n          { q: \"___ we ready to go?\", options: [\"Am\", \"Is\", \"Are\"], ans: 2, help: \"\u4e3b\u8a5e\u662f 'we' (\u6211\u5011)\uff0c\u554f\u53e5\u8981\u7528 'Are'\u3002\" },\n          { q: \"___ your father at home?\", options: [\"Am\", \"Is\", \"Are\"], ans: 1, help: \"\u7238\u7238 'your father' \u662f\u55ae\u6578\uff0c\u554f\u53e5\u7528 'Is'\u3002\" },\n          { q: \"Why ___ you sad today?\", options: [\"am\", \"is\", \"are\"], ans: 2, help: \"\u4e3b\u8a5e\u662f 'you'\uff0c\u6240\u4ee5\u8981\u7528 'are'\uff1aWhy are you sad?\" },\n          { q: \"___ the ball red?\", options: [\"Am\", \"Is\", \"Are\"], ans: 1, help: \"\u7403 'the ball' \u662f\u55ae\u6578\uff0c\u554f\u53e5\u958b\u982d\u7528 'Is'\u3002\" },\n          { q: \"___ the boys fast?\", options: [\"Am\", \"Is\", \"Are\"], ans: 2, help: \"\u7537\u5b69\u5011 'the boys' \u662f\u8907\u6578\uff0c\u554f\u53e5\u7528 'Are'\u3002\" },\n          { q: \"Where ___ my keys?\", options: [\"am\", \"is\", \"are\"], ans: 2, help: \"\u9470\u5319 'keys' \u662f\u8907\u6578\uff0c\u6240\u4ee5\u554f\uff1aWhere are my keys?\" },\n          { q: \"___ she eight years old?\", options: [\"Am\", \"Is\", \"Are\"], ans: 1, help: \"\u4e3b\u8a5e\u662f 'she'\uff0c\u554f\u53e5\u7684 be \u52d5\u8a5e\u7528 'Is'\u3002\" },\n          { q: \"Who ___ that tall man?\", options: [\"am\", \"is\", \"are\"], ans: 1, help: \"\u90a3\u9ad8\u500b\u5b50\u7537\u4eba 'that tall man' \u662f\u55ae\u6578\uff0c\u7528 'is'\u3002\" },\n          { q: \"___ I a good student?\", options: [\"Am\", \"Is\", \"Are\"], ans: 0, help: \"\u4e3b\u8a5e\u662f 'I'\uff0c\u554f\u53e5\u8981\u7528 'Am' \u958b\u982d\u3002\" },\n          { q: \"___ you and I friends?\", options: [\"Am\", \"Is\", \"Are\"], ans: 2, help: \"\u300c\u4f60\u548c\u5c71\u59c6\u300d\u7b49\u65bc\u300c\u6211\u5011\u300d\u8907\u6578\uff0c\u6240\u4ee5\u554f\u53e5\u8981\u7528 'Are'\u3002\" }\n        ]\n      },\n      {\n        id: 3,\n        title: \"Chapter 3: I am doing\",\n        desc: \"\u5b78\u7fd2\u300c\u73fe\u5728\u9032\u884c\u5f0f\u300d(be \u52d5\u8a5e + \u52d5\u8a5e-ing)\uff0c\u4ee3\u8868\u6b63\u5728\u767c\u751f\u7684\u4e8b\u5594\uff01\",\n        questions: [\n          { q: \"Look! The cat is ___.\", options: [\"sleep\", \"sleeping\", \"sleeps\"], ans: 1, help: \"\u770b\u5230 is\/am\/are\uff0c\u5f8c\u9762\u7684\u52d5\u8a5e\u8981\u52a0 'ing' \u8b8a\u6210\u6b63\u5728\u505a\u3002\" },\n          { q: \"I am ___ a storybook now.\", options: [\"read\", \"reading\", \"reads\"], ans: 1, help: \"\u4e3b\u8a5e I + am\uff0c\u5f8c\u9762\u52d5\u8a5e\u8981\u7528 'reading' \u8868\u793a\u6b63\u5728\u95b1\u8b80\u3002\" },\n          { q: \"She is ___ in the park.\", options: [\"runing\", \"running\", \"run\"], ans: 1, help: \"run \u8b8a ing \u8981\u5148\u91cd\u8907\u5b57\u5c3en\uff0c\u5beb\u6210 'running' \u5594\uff01\" },\n          { q: \"They are ___ sweet cakes.\", options: [\"eating\", \"eat\", \"eats\"], ans: 0, help: \"They are \u5f8c\u9762\u642d\u914d\u52d5\u8a5eing 'eating'\u3002\" },\n          { q: \"My brother is ___ with his toy car.\", options: [\"play\", \"playing\", \"plays\"], ans: 1, help: \"\u5f1f\u5f1f\u6b63\u5728\u73a9\uff0cis \u642d\u914d 'playing'\u3002\" },\n          { q: \"We are ___ some milk.\", options: [\"drinking\", \"drink\", \"drinks\"], ans: 0, help: \"\u6211\u5011\u6b63\u5728\u559d\uff0care \u642d\u914d 'drinking'\u3002\" },\n          { q: \"Listen! The baby is ___.\", options: [\"crying\", \"cry\", \"cries\"], ans: 0, help: \"\u5bf6\u5bf6\u6b63\u5728\u54ed\uff0cis \u642d\u914d 'crying'\u3002\" },\n          { q: \"He is ___ his teeth.\", options: [\"brush\", \"brushing\", \"brushes\"], ans: 1, help: \"\u4ed6\u6b63\u5728\u5237\u7259\uff0cis \u642d\u914d 'brushing'\u3002\" },\n          { q: \"The birds are ___ in the tree.\", options: [\"singing\", \"sing\", \"sings\"], ans: 0, help: \"\u9ce5\u5152\u6b63\u5728\u5531\u6b4c\uff0care \u642d\u914d 'singing'\u3002\" },\n          { q: \"I am ___ a cute dog.\", options: [\"drawing\", \"draw\", \"draws\"], ans: 0, help: \"\u6211\u6b63\u5728\u756b\u756b\uff0cam \u642d\u914d 'drawing'\u3002\" },\n          { q: \"You are ___ very fast.\", options: [\"walking\", \"walk\", \"walks\"], ans: 0, help: \"\u4f60\u6b63\u5728\u8d70\uff0care \u642d\u914d 'walking'\u3002\" },\n          { q: \"The fish is ___ in the water.\", options: [\"swiming\", \"swimming\", \"swim\"], ans: 1, help: \"swim \u8981\u91cd\u8907\u5b57\u5c3em\u518d\u52a0 ing\uff0c\u6240\u4ee5\u662f 'swimming'\u3002\" },\n          { q: \"My sister is ___ a song.\", options: [\"sing\", \"singing\", \"sings\"], ans: 1, help: \"\u59d0\u59d0\u6b63\u5728\u5531\u6b4c\uff0cis \u642d\u914d 'singing'\u3002\" },\n          { q: \"They are ___ to school.\", options: [\"go\", \"going\", \"goes\"], ans: 1, help: \"\u4ed6\u5011\u6b63\u5728\u53bb\uff0care \u642d\u914d 'going'\u3002\" },\n          { q: \"I am ___ my breakfast.\", options: [\"eating\", \"eat\", \"eats\"], ans: 0, help: \"\u6211\u6b63\u5728\u5403\uff0cam \u642d\u914d 'eating'\u3002\" },\n          { q: \"He is ___ a red bike.\", options: [\"riding\", \"ridding\", \"rideing\"], ans: 0, help: \"ride \u53bb e \u518d\u52a0 ing \u8b8a\u6210 'riding' \u5594\uff01\" },\n          { q: \"We are ___ under the tree.\", options: [\"sitting\", \"siting\", \"sit\"], ans: 0, help: \"sit \u8981\u91cd\u8907\u5b57\u5c3et\u518d\u52a0 ing\uff0c\u6240\u4ee5\u662f 'sitting'\u3002\" },\n          { q: \"The wind is ___ today.\", options: [\"blowing\", \"blow\", \"blows\"], ans: 0, help: \"\u98a8\u6b63\u5728\u5439\uff0cis \u642d\u914d 'blowing'\u3002\" },\n          { q: \"She is ___ a yellow hat.\", options: [\"wearing\", \"wear\", \"wears\"], ans: 0, help: \"\u5979\u6b63\u6234\u8457\uff0cis \u642d\u914d 'wearing'\u3002\" },\n          { q: \"My friends are ___ in the playground.\", options: [\"jumping\", \"jump\", \"jumps\"], ans: 0, help: \"\u670b\u53cb\u5011\u6b63\u5728\u8df3\uff0care \u642d\u914d 'jumping'\u3002\" }\n        ]\n      },\n      {\n        id: 4,\n        title: \"Chapter 4: Are you doing?\",\n        desc: \"\u5b78\u7fd2\u300c\u73fe\u5728\u9032\u884c\u5f0f\u300d\u7684\u554f\u53e5 (Am\/Is\/Are + \u4e3b\u8a5e + \u52d5\u8a5e-ing\uff1f)\",\n        questions: [\n          { q: \"___ you drawing a cat?\", options: [\"Am\", \"Is\", \"Are\"], ans: 2, help: \"\u4e3b\u8a5e\u662f you\uff0c\u73fe\u5728\u9032\u884c\u5f0f\u554f\u53e5\u8981\u7528 'Are' \u958b\u982d\u3002\" },\n          { q: \"Is she ___ a storybook?\", options: [\"read\", \"reading\", \"reads\"], ans: 1, help: \"Is \u958b\u982d\u7684\u9032\u884c\u5f0f\u554f\u53e5\uff0c\u5f8c\u9762\u7684\u52d5\u8a5e\u8981\u7528 ing\uff0c\u9078 'reading'\u3002\" },\n          { q: \"___ he eating an apple?\", options: [\"Am\", \"Is\", \"Are\"], ans: 1, help: \"\u4e3b\u8a5e\u662f he (\u55ae\u6578)\uff0c\u8981\u7528 'Is' \u958b\u982d\u554f\u554f\u984c\u3002\" },\n          { q: \"What ___ you doing now?\", options: [\"am\", \"is\", \"are\"], ans: 2, help: \"\u4e3b\u8a5e\u662f you\uff0c\u554f\u53e5\u7684 be \u52d5\u8a5e\u8981\u7528 'are'\u3002\" },\n          { q: \"Are they ___ in the pool?\", options: [\"swimming\", \"swiming\", \"swim\"], ans: 0, help: \"swim \u8981\u91cd\u8907m\u518d\u52a0 ing\uff0c\u9078 'swimming'\u3002\" },\n          { q: \"___ I wearing your shoes?\", options: [\"Am\", \"Is\", \"Are\"], ans: 0, help: \"\u4e3b\u8a5e\u662f I\uff0c\u9032\u884c\u5f0f\u554f\u53e5\u8981\u7528 'Am' \u958b\u982d\u3002\" },\n          { q: \"Is the dog ___ the ball?\", options: [\"chasing\", \"chaseing\", \"chase\"], ans: 0, help: \"chase \u7d50\u5c3e\u6709 e\uff0c\u8981\u53bb e \u518d\u52a0 ing \u8b8a\u6210 'chasing'\u3002\" },\n          { q: \"Why ___ you crying?\", options: [\"am\", \"is\", \"are\"], ans: 2, help: \"\u4e3b\u8a5e\u662f you\uff0c\u914d\u8907\u6578 be \u52d5\u8a5e\uff0c\u7528 'are'\u3002\" },\n          { q: \"___ they playing football?\", options: [\"Am\", \"Is\", \"Are\"], ans: 2, help: \"\u4e3b\u8a5e\u662f they (\u4ed6\u5011)\uff0c\u6240\u4ee5\u554f\u53e5\u642d\u914d 'Are'\u3002\" },\n          { q: \"Where is she ___?\", options: [\"going\", \"go\", \"goes\"], ans: 0, help: \"\u5df2\u7d93\u6709 'is' \u4e86\uff0c\u8868\u793a\u6b63\u5728\u9032\u884c\uff0c\u52d5\u8a5e\u7528 ing \u5f62\u5f0f 'going'\u3002\" },\n          { q: \"___ your brother writing a letter?\", options: [\"Am\", \"Is\", \"Are\"], ans: 1, help: \"your brother (\u4f60\u5f1f\u5f1f) \u662f\u55ae\u6578\uff0c\u7528 'Is' \u8d77\u982d\u3002\" },\n          { q: \"Are we ___ computer games?\", options: [\"playing\", \"play\", \"plays\"], ans: 0, help: \"\u554f\u53e5\u958b\u982d\u662f Are\uff0c\u52d5\u8a5e\u5fc5\u9808\u662f\u7528 ing \u5f62\u5f0f 'playing'\u3002\" },\n          { q: \"Is it ___ outside?\", options: [\"raining\", \"rain\", \"rains\"], ans: 0, help: \"\u5929\u6c23\u6b63\u5728\u4e0b\u96e8\u55ce\uff1fIs \u958b\u982d\u8981\u52a0 'raining'\u3002\" },\n          { q: \"___ you listening to the teacher?\", options: [\"Am\", \"Is\", \"Are\"], ans: 2, help: \"\u4e3b\u8a5e\u662f you\uff0c\u8981\u642d\u914d 'Are' \u505a\u70ba\u958b\u982d\u3002\" },\n          { q: \"What are they ___?\", options: [\"doing\", \"do\", \"does\"], ans: 0, help: \"\u4ed6\u5011\u6b63\u5728\u505a\u4ec0\u9ebc\uff1fare \u5f8c\u9762\u7528 'doing' \u5594\uff01\" },\n          { q: \"___ she making a cake?\", options: [\"Am\", \"Is\", \"Are\"], ans: 1, help: \"\u4e3b\u8a5e\u662f she\uff0c\u554f\u53e5\u8981\u914d\u55ae\u6578\u7684 'Is'\u3002\" },\n          { q: \"Are the children ___ in the room?\", options: [\"sleeping\", \"sleep\", \"sleeps\"], ans: 0, help: \"\u5b69\u5b50\u5011\u6b63\u5728\u7761\u89ba\u55ce\uff1fAre \u642d\u914d 'sleeping'\u3002\" },\n          { q: \"Is your mother ___ dinner?\", options: [\"cooking\", \"cook\", \"cooks\"], ans: 0, help: \"\u5abd\u5abd\u6b63\u5728\u716e\u98ef\u55ce\uff1fIs \u642d\u914d 'cooking'\u3002\" },\n          { q: \"Why is the baby ___?\", options: [\"crying\", \"cry\", \"cries\"], ans: 0, help: \"\u5bf6\u5bf6\u70ba\u4ec0\u9ebc\u5728\u54ed\uff1fis \u642d\u914d 'crying' \u5594\uff01\" },\n          { q: \"___ you waiting for the bus?\", options: [\"Am\", \"Is\", \"Are\"], ans: 2, help: \"\u4e3b\u8a5e\u662f you\uff0c\u554f\u53e5\u7528 'Are'\u3002\" }\n        ]\n      },\n      {\n        id: 5,\n        title: \"Chapter 5: I do \/ work \/ like\",\n        desc: \"\u5b78\u7fd2\u300c\u73fe\u5728\u7c21\u55ae\u5f0f\u300d\uff0c\u7528\u4f86\u8868\u9054\u7fd2\u6163\u3001\u611b\u597d\u6216\u4e0d\u8b8a\u7684\u4e8b\u5be6\uff08\u8981\u6ce8\u610f\u55ae\u6578\u52a0 -s \u5594\uff01\uff09\",\n        questions: [\n          { q: \"I ___ apples very much.\", options: [\"like\", \"likes\", \"liking\"], ans: 0, help: \"\u4e3b\u8a5e\u662f I\uff0c\u52d5\u8a5e\u4e0d\u7528\u52a0 s\uff0c\u7528\u539f\u578b 'like'\u3002\" },\n          { q: \"She ___ milk every morning.\", options: [\"drink\", \"drinks\", \"drinking\"], ans: 1, help: \"\u4e3b\u8a5e\u662f She (\u7b2c\u4e09\u4eba\u7a31\u55ae\u6578)\uff0c\u52d5\u8a5e\u8981\u52a0 s\uff0c\u8b8a\u6210 'drinks'\u3002\" },\n          { q: \"We ___ to the park on Sundays.\", options: [\"go\", \"goes\", \"going\"], ans: 0, help: \"\u4e3b\u8a5e\u662f We (\u8907\u6578)\uff0c\u52d5\u8a5e\u7528\u539f\u5f62 'go'\u3002\" },\n          { q: \"The cat ___ with a small ball.\", options: [\"play\", \"plays\", \"playing\"], ans: 1, help: \"\u8c93\u54aa 'The cat' \u662f\u55ae\u6578\uff0c\u52d5\u8a5e\u8981\u52a0 s \u8b8a\u6210 'plays'\u3002\" },\n          { q: \"My sister ___ beautiful songs.\", options: [\"sing\", \"sings\", \"singing\"], ans: 1, help: \"\u59d0\u59d0 'My sister' \u662f\u55ae\u6578\uff0c\u52d5\u8a5e\u8981\u52a0 s \u8b8a\u6210 'sings'\u3002\" },\n          { q: \"They ___ English in school.\", options: [\"learn\", \"learns\", \"learning\"], ans: 0, help: \"\u4ed6\u5011 'They' \u662f\u8907\u6578\uff0c\u52d5\u8a5e\u7528\u539f\u5f62 'learn'\u3002\" },\n          { q: \"I ___ my teeth twice a day.\", options: [\"brush\", \"brushes\", \"brushing\"], ans: 0, help: \"\u4e3b\u8a5e\u662f I\uff0c\u52d5\u8a5e\u7528\u539f\u5f62 'brush' \u5c31\u53ef\u4ee5\u56c9\u3002\" },\n          { q: \"He ___ a yellow bicycle.\", options: [\"ride\", \"rides\", \"riding\"], ans: 1, help: \"\u4e3b\u8a5e\u662f He (\u55ae\u6578)\uff0c\u52d5\u8a5e\u8981\u52a0 s \u8b8a\u6210 'rides'\u3002\" },\n          { q: \"The sun ___ in the morning.\", options: [\"shine\", \"shines\", \"shining\"], ans: 1, help: \"\u592a\u967d 'The sun' \u662f\u55ae\u6578\uff0c\u6240\u4ee5\u52d5\u8a5e\u8981\u52a0 s \u8b8a\u6210 'shines'\u3002\" },\n          { q: \"You ___ very good cake.\", options: [\"make\", \"makes\", \"making\"], ans: 0, help: \"\u4e3b\u8a5e\u662f You\uff0c\u52d5\u8a5e\u7528\u539f\u5f62 'make'\u3002\" },\n          { q: \"We ___ in a big city.\", options: [\"live\", \"lives\", \"living\"], ans: 0, help: \"\u4e3b\u8a5e\u662f We (\u8907\u6578)\uff0c\u52d5\u8a5e\u7528\u539f\u5f62 'live'\u3002\" },\n          { q: \"My dad ___ to work by bus.\", options: [\"go\", \"goes\", \"going\"], ans: 1, help: \"\u7238\u7238 'My dad' \u662f\u55ae\u6578\uff0cgo \u5b57\u5c3e\u662f o\uff0c\u8981\u52a0 es \u8b8a\u6210 'goes'\u3002\" },\n          { q: \"The birds ___ in the sky.\", options: [\"fly\", \"flies\", \"flying\"], ans: 0, help: \"\u9ce5\u5152\u5011 'birds' \u662f\u8907\u6578\uff0c\u52d5\u8a5e\u7528\u539f\u5f62 'fly'\u3002\" },\n          { q: \"Tim ___ to bed early.\", options: [\"go\", \"goes\", \"going\"], ans: 1, help: \"\u63d0\u59c6 'Tim' \u662f\u55ae\u6578\uff0c\u52d5\u8a5e go \u8981\u52a0 es \u8b8a\u6210 'goes'\u3002\" },\n          { q: \"I ___ a blue hat.\", options: [\"wear\", \"wears\", \"wearing\"], ans: 0, help: \"\u4e3b\u8a5e\u662f I\uff0c\u52d5\u8a5e\u7528\u539f\u5f62 'wear'\u3002\" },\n          { q: \"She ___ to school with her mom.\", options: [\"walk\", \"walks\", \"walking\"], ans: 1, help: \"\u4e3b\u8a5e\u662f She\uff0c\u52d5\u8a5e walk \u8981\u52a0 s \u8b8a\u6210 'walks'\u3002\" },\n          { q: \"My dog ___ fast.\", options: [\"run\", \"runs\", \"running\"], ans: 1, help: \"\u6211\u7684\u72d7 'My dog' \u662f\u55ae\u6578\uff0c\u52d5\u8a5e run \u52a0 s \u8b8a\u6210 'runs'\u3002\" },\n          { q: \"We ___ sweet juice.\", options: [\"like\", \"likes\", \"liking\"], ans: 0, help: \"\u4e3b\u8a5e\u662f We\uff0c\u52d5\u8a5e\u7528\u539f\u5f62 'like' \u5373\u53ef\u3002\" },\n          { q: \"They ___ sweet cookies.\", options: [\"eat\", \"eats\", \"eating\"], ans: 0, help: \"\u4e3b\u8a5e\u662f They\uff0c\u52d5\u8a5e\u7528\u539f\u5f62 'eat'\u3002\" },\n          { q: \"A frog ___ very high.\", options: [\"jump\", \"jumps\", \"jumping\"], ans: 1, help: \"\u4e00\u96bb\u9752\u86d9 'A frog' \u662f\u55ae\u6578\uff0c\u52d5\u8a5e jump \u52a0 s \u8b8a\u6210 'jumps'\u3002\" }\n        ]\n      },\n      {\n        id: 6,\n        title: \"Chapter 6: I don't...\",\n        desc: \"\u5b78\u7fd2\u300c\u73fe\u5728\u7c21\u55ae\u5f0f\u300d\u5426\u5b9a\u53e5 (don't \u6216 doesn't + \u52d5\u8a5e\u539f\u5f62)\",\n        questions: [\n          { q: \"I ___ like spiders.\", options: [\"don't\", \"doesn't\", \"not\"], ans: 0, help: \"\u4e3b\u8a5e\u662f I\uff0c\u5426\u5b9a\u53e5\u8981\u7528 'don't' \u5594\uff01\" },\n          { q: \"She ___ drink tea.\", options: [\"don't\", \"doesn't\", \"not\"], ans: 1, help: \"\u4e3b\u8a5e\u662f She (\u7b2c\u4e09\u4eba\u7a31\u55ae\u6578)\uff0c\u5426\u5b9a\u8981\u7528 'doesn't'\u3002\" },\n          { q: \"They ___ have a dog.\", options: [\"don't\", \"doesn't\", \"not\"], ans: 0, help: \"\u4e3b\u8a5e\u662f They (\u8907\u6578)\uff0c\u5426\u5b9a\u53e5\u7528 'don't'\u3002\" },\n          { q: \"He doesn't ___ chocolate.\", options: [\"like\", \"likes\", \"liking\"], ans: 0, help: \"doesn't \u5f8c\u9762\u7684\u52d5\u8a5e\u8981\u8b8a\u56de\u300c\u539f\u5f62\u52d5\u8a5e\u300d\uff0c\u4e0d\u53ef\u4ee5\u52a0 s \u5594\uff01\" },\n          { q: \"My parents ___ watch TV.\", options: [\"don't\", \"doesn't\", \"not\"], ans: 0, help: \"\u7236\u6bcd\u89aa 'My parents' \u662f\u8907\u6578\uff0c\u6240\u4ee5\u8981\u7528 'don't'\u3002\" },\n          { q: \"The cat ___ like water.\", options: [\"don't\", \"doesn't\", \"not\"], ans: 1, help: \"\u8c93\u54aa 'The cat' \u662f\u55ae\u6578\uff0c\u5426\u5b9a\u8981\u7528 'doesn't'\u3002\" },\n          { q: \"We don't ___ early on Sundays.\", options: [\"get up\", \"gets up\", \"getting up\"], ans: 0, help: \"don't \u5f8c\u9762\u63a5\u539f\u5f62\u52d5\u8a5e\uff0c\u9078 'get up'\u3002\" },\n          { q: \"You ___ need a pencil.\", options: [\"don't\", \"doesn't\", \"not\"], ans: 0, help: \"\u4e3b\u8a5e\u662f You\uff0c\u5426\u5b9a\u7528 'don't'\u3002\" },\n          { q: \"Tom doesn't ___ banana.\", options: [\"eat\", \"eats\", \"eating\"], ans: 0, help: \"doesn't \u5f8c\u9762\u9084\u539f\u6210\u300c\u539f\u5f62\u52d5\u8a5e\u300d\uff0c\u6240\u4ee5\u9078 'eat'\u3002\" },\n          { q: \"I ___ know his name.\", options: [\"don't\", \"doesn't\", \"not\"], ans: 0, help: \"\u6211\u4e0d\u77e5\u9053\u3002I \u5426\u5b9a\u642d\u914d 'don't'\u3002\" },\n          { q: \"My little sister ___ drink coffee.\", options: [\"don't\", \"doesn't\", \"not\"], ans: 1, help: \"\u59b9\u59b9 'My little sister' \u662f\u55ae\u6578\uff0c\u5426\u5b9a\u7528 'doesn't'\u3002\" },\n          { q: \"We ___ live in a farm.\", options: [\"don't\", \"doesn't\", \"not\"], ans: 0, help: \"\u4e3b\u8a5e\u662f We (\u8907\u6578)\uff0c\u5426\u5b9a\u7528 'don't'\u3002\" },\n          { q: \"He doesn't ___ a blue car.\", options: [\"has\", \"have\", \"having\"], ans: 1, help: \"doesn't \u5f8c\u9762\u63a5\u539f\u5f62\uff0chas \u7684\u539f\u5f62\u662f 'have' \u5594\uff01\" },\n          { q: \"They don't ___ computer games.\", options: [\"play\", \"plays\", \"playing\"], ans: 0, help: \"don't \u5f8c\u9762\u63a5\u539f\u5f62\u52d5\u8a5e 'play'\u3002\" },\n          { q: \"The baby ___ sleep much.\", options: [\"don't\", \"doesn't\", \"not\"], ans: 1, help: \"\u5bf6\u5bf6 'The baby' \u662f\u55ae\u6578\uff0c\u5426\u5b9a\u7528 'doesn't'\u3002\" },\n          { q: \"I don't ___ any sweet candy.\", options: [\"want\", \"wants\", \"wanting\"], ans: 0, help: \"don't \u5f8c\u9762\u76f4\u63a5\u52a0\u539f\u5f62\u52d5\u8a5e 'want'\u3002\" },\n          { q: \"Birds ___ live in the water.\", options: [\"don't\", \"doesn't\", \"not\"], ans: 0, help: \"\u9ce5\u985e 'Birds' \u662f\u8907\u6578\uff0c\u5426\u5b9a\u7528 'don't'\u3002\" },\n          { q: \"She doesn't ___ video games.\", options: [\"play\", \"plays\", \"playing\"], ans: 0, help: \"doesn't \u5df2\u7d93\u628a s \u5438\u8d70\u4e86\uff0c\u5f8c\u9762\u8981\u7528\u539f\u5f62\u52d5\u8a5e 'play' \u5594\uff01\" },\n          { q: \"You don't ___ very fast.\", options: [\"run\", \"runs\", \"running\"], ans: 0, help: \"don't \u5f8c\u9762\u63a5\u539f\u5f62\u52d5\u8a5e 'run'\u3002\" },\n          { q: \"My brother doesn't ___ cold milk.\", options: [\"like\", \"likes\", \"liking\"], ans: 0, help: \"doesn't \u5f8c\u9762\u63a5\u539f\u5f62\u52d5\u8a5e 'like'\u3002\" }\n        ]\n      },\n      {\n        id: 7,\n        title: \"Chapter 7: Do you...?\",\n        desc: \"\u5b78\u7fd2\u300c\u73fe\u5728\u7c21\u55ae\u5f0f\u300d\u554f\u53e5 (Do \/ Does + \u4e3b\u8a5e + \u539f\u5f62\u52d5\u8a5e\uff1f)\",\n        questions: [\n          { q: \"___ you like ice cream?\", options: [\"Do\", \"Does\", \"Are\"], ans: 0, help: \"\u4e3b\u8a5e\u662f you\uff0c\u4e00\u822c\u52d5\u8a5e\u554f\u53e5\u958b\u982d\u7528 'Do'\u3002\" },\n          { q: \"___ she play the piano?\", options: [\"Do\", \"Does\", \"Is\"], ans: 1, help: \"\u4e3b\u8a5e\u662f she (\u55ae\u6578)\uff0c\u554f\u53e5\u8981\u7528 'Does'\u3002\" },\n          { q: \"Do they ___ in London?\", options: [\"live\", \"lives\", \"living\"], ans: 0, help: \"Do\/Does \u7684\u554f\u53e5\uff0c\u5f8c\u9762\u7684\u4e00\u822c\u52d5\u8a5e\u8981\u7528\u300c\u539f\u5f62\u300d\uff0c\u6240\u4ee5\u662f 'live'\u3002\" },\n          { q: \"___ you have a pencil?\", options: [\"Do\", \"Does\", \"Are\"], ans: 0, help: \"\u4e3b\u8a5e\u662f you\uff0c\u7528 'Do' \u958b\u982d\u554f\u554f\u984c\u3002\" },\n          { q: \"Does he ___ a pet dog?\", options: [\"has\", \"have\", \"having\"], ans: 1, help: \"Does \u5df2\u7d93\u628a\u55ae\u6578\u6027\u8cea\u62ff\u8d70\u4e86\uff0c\u5f8c\u9762\u52d5\u8a5e\u8981\u7528\u539f\u5f62 'have'\u3002\" },\n          { q: \"___ your father drive a car?\", options: [\"Do\", \"Does\", \"Is\"], ans: 1, help: \"\u7238\u7238 'your father' \u662f\u55ae\u6578\u4e00\u4eba\uff0c\u8981\u7528 'Does' \u8d77\u982d\u3002\" },\n          { q: \"Do we ___ school today?\", options: [\"have\", \"has\", \"having\"], ans: 0, help: \"\u4e3b\u8a5e\u662f we\uff0c\u7528 Do \u958b\u982d\uff0c\u5f8c\u9762\u642d\u914d\u539f\u5f62 'have'\u3002\" },\n          { q: \"Where ___ you live?\", options: [\"do\", \"does\", \"are\"], ans: 0, help: \"\u4e3b\u8a5e\u662f you\uff0c\u4e00\u822c\u52d5\u8a5e\u7684\u554f\u53e5\u8981\u7528 'do'\uff1aWhere do you live?\" },\n          { q: \"___ the cat eat fish?\", options: [\"Do\", \"Does\", \"Is\"], ans: 1, help: \"\u8c93 'the cat' \u662f\u55ae\u6578\uff0c\u554f\u53e5\u7528 'Does' \u958b\u982d\u3002\" },\n          { q: \"Do they ___ English songs?\", options: [\"sing\", \"sings\", \"singing\"], ans: 0, help: \"Do \u7684\u554f\u53e5\u5f8c\u9762\u7528\u539f\u5f62\u52d5\u8a5e 'sing'\u3002\" },\n          { q: \"What ___ you want to eat?\", options: [\"do\", \"does\", \"are\"], ans: 0, help: \"\u4e3b\u8a5e\u662f you\uff0c\u554f\u53e5\u642d\u914d\u52a9\u52d5\u8a5e 'do' \u5594\u3002\" },\n          { q: \"___ it rain often here?\", options: [\"Do\", \"Does\", \"Is\"], ans: 1, help: \"\u4e3b\u8a5e\u662f it (\u55ae\u6578)\uff0c\u554f\u53e5\u8981\u7528 'Does'\u3002\" },\n          { q: \"Does she ___ to bed early?\", options: [\"go\", \"goes\", \"going\"], ans: 0, help: \"\u5df2\u7d93\u6709 Does \u4e86\uff0c\u5f8c\u9762\u8981\u7528\u539f\u5f62\u52d5\u8a5e 'go' \u5594\uff01\" },\n          { q: \"___ you and Sam play football?\", options: [\"Do\", \"Does\", \"Are\"], ans: 0, help: \"\u300c\u4f60\u548c\u5c71\u59c6\u300d\u6709\u5169\u500b\u4eba\uff08\u8907\u6578\uff09\uff0c\u6240\u4ee5\u8981\u7528 'Do' \u5594\uff01\" },\n          { q: \"___ your mother cook dinner?\", options: [\"Do\", \"Does\", \"Is\"], ans: 1, help: \"\u5abd\u5abd 'your mother' \u662f\u55ae\u6578\uff0c\u554f\u53e5\u7528 'Does'\u3002\" },\n          { q: \"Do you ___ many storybooks?\", options: [\"read\", \"reads\", \"reading\"], ans: 0, help: \"Do \u958b\u982d\u554f\u53e5\uff0c\u5f8c\u9762\u7528\u539f\u5f62\u52d5\u8a5e 'read'\u3002\" },\n          { q: \"Does Tim ___ any toy cars?\", options: [\"has\", \"have\", \"having\"], ans: 1, help: \"Does \u958b\u982d\u7684\u554f\u53e5\uff0c\u5f8c\u9762\u52d5\u8a5e\u8981\u56de\u5fa9\u539f\u5f62 'have' \u5594\uff01\" },\n          { q: \"___ they like to jump?\", options: [\"Do\", \"Does\", \"Is\"], ans: 0, help: \"\u4e3b\u8a5e\u662f they\uff0c\u554f\u53e5\u642d\u914d 'Do'\u3002\" },\n          { q: \"Where ___ he buy toys?\", options: [\"do\", \"does\", \"is\"], ans: 1, help: \"\u4e3b\u8a5e\u662f he (\u55ae\u6578)\uff0c\u554f\u53e5\u642d\u914d 'does' \u5594\u3002\" },\n          { q: \"Do you ___ to run?\", options: [\"like\", \"likes\", \"liking\"], ans: 0, help: \"Do \u958b\u982d\u554f\u53e5\uff0c\u5f8c\u9762\u642d\u914d\u539f\u5f62 'like'\u3002\" }\n        ]\n      },\n      {\n        id: 8,\n        title: \"Chapter 8: I am doing & I do\",\n        desc: \"\u5927\u6311\u6230\uff01\u6bd4\u4e00\u6bd4\u300c\u6b63\u5728\u505a\u7684\u4e8b\u60c5 (doing)\u300d\u548c\u300c\u5e73\u5e38\u7684\u7fd2\u6163 (do)\u300d\u7684\u5dee\u7570\u60c5\u5883\uff01\",\n        questions: [\n          { q: \"Listen! She ___ a lovely song.\", options: [\"sings\", \"is singing\", \"sing\"], ans: 1, help: \"\u300cListen! (\u807d\uff01)\u300d\u4ee3\u8868\u4e8b\u60c5\u6b63\u5728\u767c\u751f\uff0c\u8981\u7528\u9032\u884c\u5f0f 'is singing'\u3002\" },\n          { q: \"I ___ an apple every morning.\", options: [\"eat\", \"am eating\", \"eats\"], ans: 0, help: \"\u300cevery morning (\u6bcf\u5929\u65e9\u6668)\u300d\u4ee3\u8868\u4e00\u7a2e\u751f\u6d3b\u7fd2\u6163\uff0c\u8981\u7528\u7c21\u55ae\u5f0f 'eat'\u3002\" },\n          { q: \"Look! It ___ outside.\", options: [\"rains\", \"is raining\", \"rain\"], ans: 1, help: \"\u300cLook! (\u770b\uff01)\u300d\u4ee3\u8868\u73fe\u5728\u6b63\u5728\u767c\u751f\uff0c\u8981\u7528 'is raining'\u3002\" },\n          { q: \"They usually ___ games on Saturdays.\", options: [\"play\", \"are playing\", \"plays\"], ans: 0, help: \"\u300cusually (\u901a\u5e38)\u300d\u4ee3\u8868\u7fd2\u6163\uff0c\u8981\u7528\u7c21\u55ae\u5f0f 'play'\u3002\" },\n          { q: \"My dad ___ now.\", options: [\"sleeps\", \"is sleeping\", \"sleep\"], ans: 1, help: \"\u300cnow (\u73fe\u5728)\u300d\u4ee3\u8868\u73fe\u5728\u6b63\u5728\u767c\u751f\u7684\u4e8b\uff0c\u8981\u7528\u9032\u884c\u5f0f 'is sleeping'\u3002\" },\n          { q: \"He ___ English books every day.\", options: [\"reads\", \"is reading\", \"read\"], ans: 0, help: \"\u300cevery day (\u6bcf\u5929)\u300d\u4ee3\u8868\u5929\u5929\u505a\u7684\u7fd2\u6163\uff0cHe \u914d\u55ae\u6578\u52d5\u8a5e 'reads'\u3002\" },\n          { q: \"I can't play because I ___ my homework now.\", options: [\"do\", \"am doing\", \"does\"], ans: 1, help: \"\u73fe\u5728\u300c\u6b63\u5728\u300d\u505a\u529f\u8ab2\uff0c\u6240\u4ee5\u8981\u7528\u9032\u884c\u5f0f 'am doing'\u3002\" },\n          { q: \"Birds ___ in the sky.\", options: [\"fly\", \"are flying\", \"flies\"], ans: 0, help: \"\u9ce5\u6703\u98db\u662f\u4e00\u822c\u7684\u4e8b\u5be6\u3001\u5e38\u614b\uff0c\u7528\u7c21\u55ae\u5f0f 'fly' \u5c31\u53ef\u4ee5\u56c9\u3002\" },\n          { q: \"Be quiet! The baby ___.\", options: [\"sleeps\", \"is sleeping\", \"sleep\"], ans: 1, help: \"\u300cBe quiet! (\u5b89\u975c\uff01)\u300d\u4ee3\u8868\u5bf6\u5bf6\u73fe\u5728\u6b63\u5728\u7761\u89ba\uff0c\u7528 'is sleeping'\u3002\" },\n          { q: \"We ___ milk every day.\", options: [\"drink\", \"are drinking\", \"drinks\"], ans: 0, help: \"\u6bcf\u5929\u7684\u7fd2\u6163\uff0c\u4e3b\u8a5e\u662f We\uff0c\u52d5\u8a5e\u7528\u539f\u5f62 'drink'\u3002\" },\n          { q: \"My mom is not at home. She ___ now.\", options: [\"works\", \"is working\", \"work\"], ans: 1, help: \"\u300cnow (\u73fe\u5728)\u300d\u5abd\u5abd\u6b63\u5728\u5de5\u4f5c\uff0c\u6240\u4ee5\u7528\u9032\u884c\u5f0f 'is working'\u3002\" },\n          { q: \"Cats ___ mice.\", options: [\"chase\", \"are chasing\", \"chases\"], ans: 0, help: \"\u8c93\u8ffd\u8001\u9f20\u662f\u5929\u6027(\u4e00\u822c\u4e8b\u5be6)\uff0c\u6240\u4ee5\u7528\u7c21\u55ae\u5f0f 'chase' \u5373\u53ef\u3002\" },\n          { q: \"Look! The cat ___ up the tree.\", options: [\"climbs\", \"is climbing\", \"climb\"], ans: 1, help: \"\u300cLook! (\u770b\uff01)\u300d\u4ee3\u8868\u6b63\u5728\u722c\uff0c\u8981\u7528\u9032\u884c\u5f0f 'is climbing'\u3002\" },\n          { q: \"I usually ___ water after lunch.\", options: [\"drink\", \"am drinking\", \"drinks\"], ans: 0, help: \"\u300cusually (\u901a\u5e38)\u300d\u4ee3\u8868\u65e5\u5e38\u7fd2\u6163\uff0c\u4e3b\u8a5e I \u642d\u914d\u539f\u5f62 'drink'\u3002\" },\n          { q: \"Where is Sam? He ___ a bike in the park.\", options: [\"rides\", \"is riding\", \"ride\"], ans: 1, help: \"\u554f Sam \u5728\u54ea\u88e1\uff0c\u4ee3\u8868\u4ed6\u73fe\u5728\u6b63\u5728\u505a\u9019\u4ef6\u4e8b\uff0c\u7528 'is riding'\u3002\" },\n          { q: \"My brother ___ very fast every time.\", options: [\"runs\", \"is running\", \"run\"], ans: 0, help: \"\u300cevery time (\u6bcf\u6b21)\u300d\u4ee3\u8868\u5e38\u614b\u7fd2\u6163\uff0c\u54e5\u54e5 (\u55ae\u6578) \u642d\u914d 'runs'\u3002\" },\n          { q: \"They ___ TV at this moment.\", options: [\"watch\", \"are watching\", \"watches\"], ans: 1, help: \"\u300cat this moment (\u6b64\u6642\u6b64\u523b)\u300d\u4ee3\u8868\u73fe\u5728\u6b63\u5728\u770b\uff0c\u7528\u9032\u884c\u5f0f 'are watching'\u3002\" },\n          { q: \"The sun ___ in the east.\", options: [\"rises\", \"is rising\", \"rise\"], ans: 0, help: \"\u592a\u967d\u5f9e\u6771\u908a\u5347\u8d77\u662f\u81ea\u7136\u5e38\u7406\uff0c\u7528\u7c21\u55ae\u5f0f\u55ae\u6578\u52d5\u8a5e 'rises'\u3002\" },\n          { q: \"Listen! A bird ___.\", options: [\"sings\", \"is singing\", \"sing\"], ans: 1, help: \"\u300cListen! (\u807d\uff01)\u300d\u8868\u793a\u9019\u96bb\u9ce5\u6b64\u6642\u6b64\u523b\u6b63\u5728\u5531\u6b4c\uff0c\u7528 'is singing'\u3002\" },\n          { q: \"I ___ a pink hat today.\", options: [\"wear\", \"am wearing\", \"wears\"], ans: 1, help: \"\u300ctoday (\u4eca\u5929)\u300d\u8868\u793a\u6211\u4eca\u5929\u6b64\u6642\u6b63\u7a7f\u6234\u8457\u9019\u9802\u5e3d\u5b50\uff0c\u7528 'am wearing'\u3002\" }\n        ]\n      },\n      {\n        id: 9,\n        title: \"Chapter 9: I have... \/ I've got...\",\n        desc: \"\u5b78\u7fd2\u8868\u793a\u300c\u6211\u6709...\u300d\u7684\u5169\u7a2e\u8aaa\u6cd5 (have\/has \u6216 have got\/has got) \u53ca\u5176\u5426\u5b9a\u53e5\u8207\u7591\u554f\u53e5\u7528\u6cd5\u3002\",\n        questions: [\n          { q: \"I ___ a new blue toy car.\", options: [\"have\", \"has\", \"having\"], ans: 0, help: \"\u4e3b\u8a5e\u662f I\uff0c\u8868\u793a\u6211\u6709\u8981\u7528 'have'\u3002\" },\n          { q: \"She ___ got two sweet cats.\", options: [\"have\", \"has\", \"having\"], ans: 1, help: \"\u4e3b\u8a5e\u662f She (\u55ae\u6578)\uff0c\u914d 'has' \u8b8a\u6210 'has got'\u3002\" },\n          { q: \"They ___ a big green garden.\", options: [\"have\", \"has\", \"having\"], ans: 0, help: \"\u4e3b\u8a5e\u662f They (\u8907\u6578)\uff0c\u8981\u7528 'have' \u5594\uff01\" },\n          { q: \"He ___ a yellow banana.\", options: [\"have\", \"has\", \"having\"], ans: 1, help: \"\u4e3b\u8a5e\u662f He (\u55ae\u6578)\uff0c\u8868\u793a\u300c\u4ed6\u6709\u300d\u8981\u7528 'has'\u3002\" },\n          { q: \"We ___ got some sweet apples.\", options: [\"have\", \"has\", \"having\"], ans: 0, help: \"\u4e3b\u8a5e\u662f We (\u8907\u6578)\uff0c\u300c\u6211\u5011\u6709\u300d\u914d 'have got'\u3002\" },\n          { q: \"I have ___ a cute little sister.\", options: [\"get\", \"got\", \"getting\"], ans: 1, help: \"\u300c\u6211\u6709...\u300d\u53ef\u4ee5\u7528 I have got\uff0c\u6240\u4ee5\u8981\u7528 'got'\u3002\" },\n          { q: \"The dog ___ got a long tail.\", options: [\"have\", \"has\", \"having\"], ans: 1, help: \"\u5c0f\u72d7 'The dog' \u662f\u55ae\u6578\u4e00\u96bb\uff0c\u7528 'has got'\u3002\" },\n          { q: \"My parents ___ a red car.\", options: [\"have\", \"has\", \"having\"], ans: 0, help: \"\u7238\u5abd 'My parents' \u662f\u8907\u6578\uff0c\u8981\u642d\u914d 'have'\u3002\" },\n          { q: \"You ___ got a nice pencil case.\", options: [\"have\", \"has\", \"having\"], ans: 0, help: \"\u4e3b\u8a5e\u662f You\uff0c\u642d\u914d 'have got' \u5594\u3002\" },\n          { q: \"Do you ___ a ruler?\", options: [\"have\", \"has\", \"having\"], ans: 0, help: \"Do you \u5f8c\u9762\u8981\u642d\u914d\u539f\u5f62\u52d5\u8a5e\uff0c\u6240\u4ee5\u8981\u7528 'have'\uff1aDo you have...?\" },\n          { q: \"She doesn't ___ any toys.\", options: [\"have\", \"has\", \"having\"], ans: 0, help: \"doesn't \u5f8c\u9762\u8981\u9084\u539f\u6210\u539f\u5f62\u52d5\u8a5e 'have' \u5594\uff01\" },\n          { q: \"___ they got a big tent?\", options: [\"Have\", \"Has\", \"Do\"], ans: 0, help: \"\u56e0\u70ba\u5f8c\u9762\u6709 'got' \u4e14\u4e3b\u8a5e\u662f they\uff0c\u6240\u4ee5\u554f\u53e5\u958b\u982d\u7528 'Have'\u3002\" },\n          { q: \"My sister ___ a beautiful doll.\", options: [\"have\", \"has\", \"having\"], ans: 1, help: \"\u59d0\u59d0 'My sister' \u662f\u55ae\u6578\uff0c\u8868\u793a\u6709\u8981\u7528 'has'\u3002\" },\n          { q: \"I ___ got cold water in my cup.\", options: [\"have\", \"has\", \"having\"], ans: 0, help: \"\u4e3b\u8a5e\u662f I\uff0c\u914d 'have got'\u3002\" },\n          { q: \"Does he ___ a bike?\", options: [\"have\", \"has\", \"having\"], ans: 0, help: \"Does \u958b\u982d\u7684\u554f\u53e5\uff0c\u5f8c\u9762\u8981\u9084\u539f\u6210\u539f\u5f62\u52d5\u8a5e 'have' \u5594\uff01\" },\n          { q: \"He ___ got a cute face.\", options: [\"have\", \"has\", \"having\"], ans: 1, help: \"\u4e3b\u8a5e\u662f He (\u55ae\u6578)\uff0c\u8981\u642d\u914d 'has got'\u3002\" },\n          { q: \"We ___ any pets.\", options: [\"don't have\", \"doesn't have\", \"not have\"], ans: 0, help: \"\u6211\u5011\u6c92\u6709...\u8907\u6578\u5426\u5b9a\u7528 'don't have'\u3002\" },\n          { q: \"The baby ___ got any teeth yet.\", options: [\"haven't\", \"hasn't\", \"don't\"], ans: 1, help: \"\u5bf6\u5bf6\u662f\u55ae\u6578\uff0c\u5426\u5b9a\u300c\u6c92\u6709\u5f97\u5230\u300d\u8981\u7528 'hasn't got'\u3002\" },\n          { q: \"They ___ some red apples.\", options: [\"have\", \"has\", \"having\"], ans: 0, help: \"\u4e3b\u8a5e\u662f They\uff0c\u7528 'have' \u5594\u3002\" },\n          { q: \"My schoolbag ___ got many books.\", options: [\"have\", \"has\", \"having\"], ans: 1, help: \"\u66f8\u5305 'My schoolbag' \u662f\u55ae\u6578\uff0c\u642d\u914d 'has got' \u5594\u3002\" }\n        ]\n      },\n      {\n        id: 10,\n        title: \"Chapter 10: was \/ were\",\n        desc: \"\u5b78\u7fd2\u300c\u904e\u53bb\u5f0f\u300d\u7684 be \u52d5\u8a5e\uff0c\u8868\u793a\u300c\u6628\u5929\u3001\u4ee5\u524d\u300d\u767c\u751f\u7684\u4e8b\u8207\u72c0\u614b\u5594\uff01 (was \/ were)\",\n        questions: [\n          { q: \"Yesterday, I ___ at school.\", options: [\"am\", \"was\", \"were\"], ans: 1, help: \"\u300cYesterday (\u6628\u5929)\u300d\u662f\u904e\u53bb\u5f0f\uff0cI \u904e\u53bb\u5f0f\u642d\u914d 'was'\u3002\" },\n          { q: \"They ___ happy last Sunday.\", options: [\"are\", \"was\", \"were\"], ans: 2, help: \"\u300clast Sunday (\u4e0a\u661f\u671f\u65e5)\u300d\u662f\u904e\u53bb\u5f0f\uff0cThey \u904e\u53bb\u5f0f\u642d\u914d 'were'\u3002\" },\n          { q: \"She ___ very tired last night.\", options: [\"is\", \"was\", \"were\"], ans: 1, help: \"\u300clast night (\u6628\u665a)\u300d\u662f\u904e\u53bb\u5f0f\uff0cShe \u904e\u53bb\u5f0f\u642d\u914d 'was'\u3002\" },\n          { q: \"We ___ at home yesterday afternoon.\", options: [\"are\", \"was\", \"were\"], ans: 2, help: \"\u300cyesterday (\u6628\u5929)\u300d\u904e\u53bb\u5f0f\uff0cWe \u8907\u6578\u642d\u914d 'were'\u3002\" },\n          { q: \"The weather ___ nice yesterday.\", options: [\"is\", \"was\", \"were\"], ans: 1, help: \"\u5929\u6c23 'The weather' \u662f\u55ae\u6578\uff0c\u6628\u5929\u904e\u53bb\u5f0f\u642d\u914d 'was'\u3002\" },\n          { q: \"___ you sick last Monday?\", options: [\"Are\", \"Was\", \"Were\"], ans: 2, help: \"\u4e3b\u8a5e\u662f you\uff0c\u904e\u53bb\u5f0f\u554f\u53e5\u8981\u7528 'Were'\u3002\" },\n          { q: \"The toys ___ on the table just now.\", options: [\"are\", \"was\", \"were\"], ans: 2, help: \"\u300cjust now (\u525b\u624d)\u300d\u662f\u904e\u53bb\u5f0f\uff0c\u73a9\u5177\u5011 'toys' \u662f\u8907\u6578\u914d 'were'\u3002\" },\n          { q: \"My father ___ not at home yesterday.\", options: [\"is\", \"was\", \"were\"], ans: 1, help: \"\u7238\u7238\u662f\u55ae\u6578\uff0c\u6628\u5929(\u904e\u53bb\u5f0f)\u4e0d\u5728\u5bb6\uff0c\u914d 'was'\u3002\" },\n          { q: \"Where ___ they last week?\", options: [\"are\", \"was\", \"were\"], ans: 2, help: \"\u300clast week (\u4e0a\u9031)\u300d\u904e\u53bb\u5f0f\uff0cthey \u8907\u6578\u914d 'were'\u3002\" },\n          { q: \"It ___ a sunny day yesterday.\", options: [\"is\", \"was\", \"were\"], ans: 1, help: \"\u6628\u5929\u662f\u4e00\u500b\u4eba\u4eba\u90fd\u611b\u7684\u6674\u5929\u3002It \u904e\u53bb\u5f0f\u914d 'was'\u3002\" },\n          { q: \"I ___ a small baby four years ago.\", options: [\"am\", \"was\", \"were\"], ans: 1, help: \"\u300cfour years ago (\u56db\u5e74\u524d)\u300d\u662f\u904e\u53bb\u5f0f\uff0cI \u914d 'was' \u5594\uff01\" },\n          { q: \"The apples ___ green last month.\", options: [\"are\", \"was\", \"were\"], ans: 2, help: \"\u860b\u679c 'apples' \u662f\u8907\u6578\uff0c\u4e0a\u500b\u6708\u904e\u53bb\u5f0f\u642d\u914d 'were'\u3002\" },\n          { q: \"___ she at your party yesterday?\", options: [\"Is\", \"Was\", \"Were\"], ans: 1, help: \"\u4e3b\u8a5e\u662f she (\u55ae\u6578)\uff0c\u904e\u53bb\u5f0f\u554f\u53e5\u7528 'Was' \u8d77\u982d\u3002\" },\n          { q: \"We ___ very excited yesterday.\", options: [\"are\", \"was\", \"were\"], ans: 2, help: \"\u6211\u5011 'We' \u904e\u53bb\u5f0f\u8981\u642d\u914d 'were' \u5594\u3002\" },\n          { q: \"My brother and I ___ at the park last Saturday.\", options: [\"are\", \"was\", \"were\"], ans: 2, help: \"\u300c\u6211\u5f1f\u5f1f\u548c\u6211\u300d\u6709\u5169\u500b\u4eba\uff0c\u8907\u6578\u904e\u53bb\u5f0f\u642d\u914d 'were'\u3002\" },\n          { q: \"My old pencil ___ very short.\", options: [\"is\", \"was\", \"were\"], ans: 1, help: \"\u820a\u925b\u7b46 'My old pencil' \u662f\u55ae\u6578\uff0c\u904e\u53bb\u7684\u4e8b\u7528 'was'\u3002\" },\n          { q: \"Why ___ you late this morning?\", options: [\"are\", \"was\", \"were\"], ans: 2, help: \"\u4eca\u5929\u65e9\u4e0a(\u904e\u53bb)\u4f60\u70ba\u4ec0\u9ebc\u9072\u5230\uff1fyou \u904e\u53bb\u5f0f\u642d\u914d 'were'\u3002\" },\n          { q: \"The monkey ___ hungry just now.\", options: [\"is\", \"was\", \"were\"], ans: 1, help: \"\u7334\u5b50 'The monkey' \u662f\u55ae\u6578\uff0c\u525b\u624d(\u904e\u53bb)\u5f88\u9913\u914d 'was'\u3002\" },\n          { q: \"___ they in the school hall?\", options: [\"Are\", \"Was\", \"Were\"], ans: 2, help: \"\u4e3b\u8a5e\u662f they\uff0c\u904e\u53bb\u5f0f\u554f\u53e5\u958b\u982d\u7528 'Were'\u3002\" },\n          { q: \"I ___ not happy yesterday.\", options: [\"am\", \"was\", \"were\"], ans: 1, help: \"\u6628\u5929(\u904e\u53bb\u5f0f)\u6211\u4e0d\u9ad8\u8208\u3002I \u642d\u914d 'was'\u3002\" }\n        ]\n      }\n    ];\n\n    \/\/ --- State Variables ---\n    let currentMode = 'practice'; \/\/ 'practice' or 'print'\n    let currentChapterIdx = 0;\n    let currentQIdx = 0;\n    let practiceSelectedOption = null;\n    let practiceIsAnswered = false;\n    let practiceScores = Array(db.length).fill(0); \/\/ tracks scores per chapter\n    let practiceHistory = db.map(chap => Array(chap.questions.length).fill(null)); \/\/ null, true, false\n\n    \/\/ --- Initialization ---\n    window.onload = function() {\n      \/\/ Setup practice mode\n      renderPracticeSidebar();\n      loadPracticeQuestion();\n      \n      \/\/ Pre-render print view\n      renderPrintWorksheet();\n    }\n\n    \/\/ --- Switch UI Modes ---\n    function switchMode(mode) {\n      playSound('click');\n      currentMode = mode;\n      \n      const practiceBtn = document.getElementById('btn-practice-mode');\n      const printBtn = document.getElementById('btn-print-mode');\n      const practiceCont = document.getElementById('practice-container');\n      const printCont = document.getElementById('print-container');\n\n      if (mode === 'practice') {\n        practiceBtn.className = \"px-3 py-1.5 rounded-lg bg-white text-indigo-600 shadow-sm transition-all flex items-center gap-1\";\n        printBtn.className = \"px-3 py-1.5 rounded-lg text-slate-500 hover:text-slate-800 transition-all flex items-center gap-1\";\n        practiceCont.classList.remove('hidden');\n        printCont.classList.add('hidden');\n      } else {\n        printBtn.className = \"px-3 py-1.5 rounded-lg bg-white text-indigo-600 shadow-sm transition-all flex items-center gap-1\";\n        practiceBtn.className = \"px-3 py-1.5 rounded-lg text-slate-500 hover:text-slate-800 transition-all flex items-center gap-1\";\n        printCont.classList.remove('hidden');\n        practiceCont.classList.add('hidden');\n      }\n    }\n\n    \/\/ =========================================================\n    \/\/ ================= PRACTICE CONTROLLERS ==================\n    \/\/ =========================================================\n\n    function renderPracticeSidebar() {\n      const listContainer = document.getElementById('practice-chapter-list');\n      listContainer.innerHTML = '';\n\n      db.forEach((chap, idx) => {\n        const isActive = idx === currentChapterIdx;\n        const scoreVal = practiceScores[idx];\n        const isStarted = practiceHistory[idx].some(v => v !== null);\n\n        const btn = document.createElement('button');\n        btn.onclick = () => selectPracticeChapter(idx);\n        btn.className = `w-full text-left p-3.5 rounded-2xl border-2 transition-all duration-200 flex items-center gap-3 relative overflow-hidden ${\n          isActive \n            ? 'border-indigo-500 bg-indigo-50\/50 text-indigo-900 ring-2 ring-indigo-500\/10' \n            : 'border-slate-100 hover:border-slate-200 bg-white hover:bg-slate-50 text-slate-700'\n        }`;\n\n        btn.innerHTML = `\n          <div class=\"flex-shrink-0 w-8 h-8 rounded-lg bg-slate-100 text-slate-700 font-extrabold text-xs flex items-center justify-center ${isActive ? 'bg-indigo-600 text-white' : ''}\">\n            ${chap.id}\n          <\/div>\n          <div class=\"flex-grow min-w-0\">\n            <h4 class=\"font-extrabold text-xs truncate leading-none mb-1\">${chap.title}<\/h4>\n            <span class=\"text-[9px] font-bold text-slate-400\">\n              ${isStarted ? `\u9032\u5ea6\u5f97\u5206: ${scoreVal} \/ 20 \u984c` : '\u5c1a\u672a\u6311\u6230 \ud83d\uddfa\ufe0f'}\n            <\/span>\n          <\/div>\n          ${scoreVal === 20 ? '<span class=\"text-sm absolute right-3 top-3.5\">\ud83d\udc51<\/span>' : ''}\n        `;\n        listContainer.appendChild(btn);\n      });\n    }\n\n    function selectPracticeChapter(idx) {\n      playSound('click');\n      currentChapterIdx = idx;\n      currentQIdx = 0;\n      practiceSelectedOption = null;\n      practiceIsAnswered = false;\n      renderPracticeSidebar();\n      loadPracticeQuestion();\n    }\n\n    function loadPracticeQuestion() {\n      const chap = db[currentChapterIdx];\n      const q = chap.questions[currentQIdx];\n\n      \/\/ Update text\n      document.getElementById('quiz-chapter-num').innerText = `UNIT ${chap.id < 10 ? '0' + chap.id : chap.id}`;\n      document.getElementById('quiz-chapter-title').innerText = chap.title;\n      document.getElementById('quiz-chapter-desc').innerText = chap.desc;\n      document.getElementById('quiz-score').innerText = `${practiceScores[currentChapterIdx]} \/ 20`;\n      document.getElementById('quiz-q-num').innerText = currentQIdx + 1;\n      document.getElementById('quiz-question-text').innerText = q.q.replace(\"___\", \" ______ \");\n\n      \/\/ Action buttons reset\n      document.getElementById('btn-quiz-submit').classList.remove('hidden');\n      document.getElementById('btn-quiz-submit').disabled = true;\n      document.getElementById('btn-quiz-submit').className = \"px-7 py-4 rounded-2xl font-black text-sm md:text-base transition-all flex items-center gap-1.5 bg-slate-100 text-slate-400 cursor-not-allowed\";\n      \n      document.getElementById('btn-quiz-next').classList.add('hidden');\n      document.getElementById('quiz-explanation-box').classList.add('hidden');\n\n      practiceSelectedOption = null;\n      practiceIsAnswered = false;\n\n      \/\/ Draw options (Bigger sizing)\n      const optContainer = document.getElementById('quiz-options-container');\n      optContainer.innerHTML = '';\n      q.options.forEach((opt, idx) => {\n        const btn = document.createElement('button');\n        btn.onclick = () => selectPracticeOption(idx);\n        btn.className = \"p-5 md:p-6 rounded-2xl border-2 border-slate-200 text-left font-bold transition-all duration-200 flex items-center gap-4 bg-white hover:bg-slate-50\";\n        btn.innerHTML = `\n          <span class=\"w-9 h-9 rounded-xl bg-slate-100 text-slate-500 font-black text-sm md:text-base flex items-center justify-center select-none shrink-0\">\n            ${String.fromCharCode(65 + idx)}\n          <\/span>\n          <span class=\"text-slate-800 text-lg md:text-xl font-bold\">${opt}<\/span>\n        `;\n        optContainer.appendChild(btn);\n      });\n\n      \/\/ Update step steps bar\n      const stepBar = document.getElementById('practice-progress-steps');\n      stepBar.innerHTML = '';\n      for (let i = 0; i < 20; i++) {\n        const step = document.createElement('div');\n        step.className = \"h-full flex-grow border-r border-white\/50 last:border-0 transition-all\";\n        const status = practiceHistory[currentChapterIdx][i];\n        if (i < currentQIdx) {\n          step.classList.add(status ? 'bg-emerald-400' : 'bg-rose-400');\n        } else if (i === currentQIdx) {\n          step.classList.add('bg-indigo-500', 'animate-pulse');\n        } else {\n          step.classList.add('bg-slate-200\/50');\n        }\n        stepBar.appendChild(step);\n      }\n    }\n\n    function selectPracticeOption(idx) {\n      if (practiceIsAnswered) return;\n      practiceSelectedOption = idx;\n\n      \/\/ Update highlight style of options\n      const optContainer = document.getElementById('quiz-options-container');\n      Array.from(optContainer.children).forEach((btn, bidx) => {\n        if (bidx === idx) {\n          btn.className = \"p-5 md:p-6 rounded-2xl border-2 border-indigo-500 bg-indigo-50\/50 text-indigo-900 ring-2 ring-indigo-500\/10 text-left font-bold transition-all duration-200 flex items-center gap-4\";\n          btn.children[0].className = \"w-9 h-9 rounded-xl bg-indigo-500 text-white font-black text-sm md:text-base flex items-center justify-center shrink-0\";\n        } else {\n          btn.className = \"p-5 md:p-6 rounded-2xl border-2 border-slate-200 text-left font-bold transition-all duration-200 flex items-center gap-4 bg-white hover:bg-slate-50\";\n          btn.children[0].className = \"w-9 h-9 rounded-xl bg-slate-100 text-slate-500 font-black text-sm md:text-base flex items-center justify-center shrink-0\";\n        }\n      });\n\n      \/\/ Enable submit button\n      const submitBtn = document.getElementById('btn-quiz-submit');\n      submitBtn.disabled = false;\n      submitBtn.className = \"px-7 py-4 rounded-2xl font-black text-sm md:text-base text-white bg-indigo-600 shadow-md hover:brightness-110 active:scale-95 transition-all flex items-center gap-1.5\";\n    }\n\n    function submitPracticeAnswer() {\n      if (practiceSelectedOption === null || practiceIsAnswered) return;\n      practiceIsAnswered = true;\n\n      const chap = db[currentChapterIdx];\n      const q = chap.questions[currentQIdx];\n      const isCorrect = practiceSelectedOption === q.ans;\n\n      \/\/ update history state\n      practiceHistory[currentChapterIdx][currentQIdx] = isCorrect;\n      if (isCorrect) {\n        practiceScores[currentChapterIdx]++;\n        playSound('correct');\n      } else {\n        playSound('incorrect');\n      }\n\n      \/\/ highlight options correctly (Larger indicators)\n      const optContainer = document.getElementById('quiz-options-container');\n      Array.from(optContainer.children).forEach((btn, bidx) => {\n        btn.disabled = true;\n        if (bidx === q.ans) {\n          \/\/ correct one\n          btn.className = \"p-5 md:p-6 rounded-2xl border-2 border-emerald-500 bg-emerald-50 text-emerald-900 text-left font-bold transition-all flex items-center justify-between gap-4\";\n          btn.children[0].className = \"w-9 h-9 rounded-xl bg-emerald-500 text-white font-black text-sm md:text-base flex items-center justify-center shrink-0\";\n          \n          const label = document.createElement('span');\n          label.className = \"text-emerald-600 font-black text-base shrink-0\";\n          label.innerText = \"\u2713 \u6b63\u78ba\";\n          btn.appendChild(label);\n        } else if (bidx === practiceSelectedOption) {\n          \/\/ wrong chosen one\n          btn.className = \"p-5 md:p-6 rounded-2xl border-2 border-rose-500 bg-rose-50 text-rose-900 text-left font-bold transition-all flex items-center justify-between gap-4\";\n          btn.children[0].className = \"w-9 h-9 rounded-xl bg-rose-500 text-white font-black text-sm md:text-base flex items-center justify-center shrink-0\";\n          \n          const label = document.createElement('span');\n          label.className = \"text-rose-600 font-black text-base shrink-0\";\n          label.innerText = \"\u2717 \u7b54\u932f\";\n          btn.appendChild(label);\n        } else {\n          btn.className = \"p-5 md:p-6 rounded-2xl border-2 border-slate-100 bg-slate-50\/50 text-slate-400 opacity-50 text-left font-bold flex items-center gap-4\";\n          btn.children[0].className = \"w-9 h-9 rounded-xl bg-slate-100 text-slate-300 font-black text-sm md:text-base flex items-center justify-center shrink-0\";\n        }\n      });\n\n      \/\/ Show explanation hint panel (Larger font size)\n      const explBox = document.getElementById('quiz-explanation-box');\n      explBox.innerHTML = '';\n      explBox.className = `mt-6 p-5 rounded-2xl flex gap-3 animate-fadeIn border ${\n        isCorrect ? 'bg-emerald-50\/70 border-emerald-100 text-emerald-900' : 'bg-amber-50\/70 border-amber-100 text-amber-900'\n      }`;\n      explBox.innerHTML = `\n        <span class=\"text-3xl\">${isCorrect ? '\ud83c\udf89' : '\ud83d\udca1'}<\/span>\n        <div>\n          <h5 class=\"text-xs md:text-sm font-black uppercase tracking-wider mb-1\">${isCorrect ? '\u592a\u68d2\u4e86\uff01\u5b8c\u5168\u6b63\u78ba\uff01' : '\u5225\u7070\u5fc3\uff0c\u5feb\u770b\u770b\u89e3\u6790\u63d0\u793a\uff1a'}<\/h5>\n          <p class=\"text-sm md:text-base font-bold leading-relaxed\">${q.help}<\/p>\n        <\/div>\n      `;\n      explBox.classList.remove('hidden');\n\n      \/\/ Swap Action Button\n      document.getElementById('btn-quiz-submit').classList.add('hidden');\n      document.getElementById('btn-quiz-next').classList.remove('hidden');\n\n      \/\/ Update scores in sidebar\n      renderPracticeSidebar();\n      document.getElementById('quiz-score').innerText = `${practiceScores[currentChapterIdx]} \/ 20`;\n    }\n\n    function nextPracticeQuestion() {\n      if (currentQIdx < 19) {\n        currentQIdx++;\n        loadPracticeQuestion();\n      } else {\n        \/\/ Finished the 20 questions!\n        playSound('correct');\n        showChapterFinishedModal();\n      }\n    }\n\n    function showChapterFinishedModal() {\n      const finalScore = practiceScores[currentChapterIdx];\n      \/\/ Quick overlay-based congratulation popup using pure vanilla JS\n      const modal = document.createElement('div');\n      modal.className = \"fixed inset-0 z-[100] flex items-center justify-center bg-black\/50 p-4 no-print\";\n      modal.innerHTML = `\n        <div class=\"bg-white rounded-3xl p-6 md:p-8 max-w-sm w-full text-center shadow-2xl border border-slate-100 animate-fadeIn\">\n          <span class=\"text-5xl block mb-3\">\ud83c\udfc6<\/span>\n          <h3 class=\"text-xl font-black text-slate-800\">\u5192\u96aa\u95dc\u5361\u5713\u6eff\u5b8c\u6210\uff01<\/h3>\n          <p class=\"text-xs text-slate-400 font-bold mt-1 uppercase tracking-widest\">${db[currentChapterIdx].title}<\/p>\n          \n          <div class=\"my-6 py-4 bg-slate-50 rounded-2xl border border-slate-100 shadow-inner\">\n            <span class=\"text-3xl font-black text-indigo-600\">${finalScore}<\/span>\n            <span class=\"text-xs font-bold text-slate-400 block mt-1\">\/ 20 \u984c\u7b54\u5c0d\u7387 ${finalScore * 5}%<\/span>\n          <\/div>\n\n          <p class=\"text-xs font-extrabold text-slate-600 leading-relaxed mb-6\">\n            ${finalScore === 20 ? '\ud83d\udc51 \u592a\u4e0d\u53ef\u601d\u8b70\u4e86\uff01\u5168\u5c0d\u6eff\u5206\uff01\u4f60\u662f\u500b\u540d\u526f\u5176\u5be6\u7684\u6587\u6cd5\u5927\u5e2b\uff01' :\n              finalScore >= 16 ? '\ud83c\udf1f \u975e\u5e38\u512a\u79c0\uff01\u76f8\u4fe1\u4f60\u5df2\u7d93\u638c\u63e1\u6b64\u7ae0\u7bc0\u7684\u7cbe\u9ad3\u4e86\uff01' :\n              finalScore >= 12 ? '\ud83d\udc4d \u5f88\u68d2\u7684\u52aa\u529b\uff01\u7e7c\u7e8c\u52a0\u6cb9\uff0c\u4e0b\u4e00\u6b21\u4e00\u5b9a\u53ef\u4ee5\u62ff\u6eff\u5206\uff01' :\n              '\ud83d\udcd6 \u57fa\u790e\u5f88\u624e\u5be6\uff01\u591a\u505a\u5e7e\u6b21\u7df4\u7fd2\uff0c\u80fd\u8b93\u8a18\u61b6\u66f4\u6df1\u523b\u5594\uff01'}\n          <\/p>\n\n          <button id=\"btn-modal-close\" class=\"w-full py-3 rounded-2xl bg-indigo-600 hover:bg-indigo-700 font-black text-xs uppercase tracking-wider text-white shadow-md shadow-indigo-100 transition-all\">\n            \u78ba\u8a8d\u4e26\u95dc\u9589\n          <\/button>\n        <\/div>\n      `;\n      document.body.appendChild(modal);\n\n      document.getElementById('btn-modal-close').onclick = () => {\n        playSound('click');\n        modal.remove();\n        currentQIdx = 0;\n        loadPracticeQuestion();\n      };\n    }\n\n    \/\/ =========================================================\n    \/\/ ================== PRINTABLE WORKSHEET ==================\n    \/\/ =========================================================\n\n    function renderPrintWorksheet() {\n      const printContainer = document.getElementById('print-chapters-content');\n      printContainer.innerHTML = '';\n\n      db.forEach((chap) => {\n        const chapDiv = document.createElement('div');\n        \/\/ add print classes for cleaner margins\n        chapDiv.className = \"print-page-break space-y-6 pb-6 border-b border-slate-200 last:border-0\";\n        \n        let questionsHTML = '';\n        chap.questions.forEach((q, qidx) => {\n          \n          \/\/ Build Options with optional correct underlined answer (Bigger typography)\n          let optionsHTML = '';\n          q.options.forEach((opt, oidx) => {\n            const isAnswer = oidx === q.ans;\n            optionsHTML += `\n              <div class=\"option\" style=\"display:inline-block; width:30%; font-size:12pt; color: #1e293b; margin-bottom: 6px;\">\n                <span style=\"font-weight:bold; font-family:'Fredoka';\">[ &nbsp; ] (${String.fromCharCode(65 + oidx)})<\/span> \n                <span class=\"${isAnswer ? 'print-answer underline font-bold decoration-2 decoration-indigo-600' : ''}\">${opt}<\/span>\n              <\/div>\n            `;\n          });\n\n          questionsHTML += `\n            <div style=\"margin-bottom: 16pt; page-break-inside: avoid;\">\n              <p style=\"font-size: 13pt; font-weight: bold; margin-bottom: 6px; line-height: 1.4; color: #0f172a;\">\n                ${qidx + 1}. ${q.q.replace(\"___\", \"________\")}\n              <\/p>\n              <div style=\"padding-left: 15px; margin-top: 4px;\">\n                ${optionsHTML}\n              <\/div>\n              <p class=\"print-hint\" style=\"font-size: 10pt; color: #b45309; font-weight: bold; margin-top: 5px; padding-left: 15px;\">\n                \ud83d\udca1 \u63d0\u793a\uff1a${q.help}\n              <\/p>\n            <\/div>\n          `;\n        });\n\n        chapDiv.innerHTML = `\n          <div style=\"border-left: 4px solid #4f46e5; padding-left: 12px; margin-bottom: 14pt; page-break-inside: avoid;\">\n            <h2 style=\"font-size: 15pt; font-weight: 900; color: #1e3a8a; margin: 0;\">${chap.title}<\/h2>\n            <p style=\"font-size: 10.5pt; color: #64748b; font-weight: bold; margin: 4px 0 0 0; line-height: 1.3;\">\u8aaa\u660e: ${chap.desc}<\/p>\n          <\/div>\n          \n          <div style=\"padding-left: 5px;\">\n            ${questionsHTML}\n          <\/div>\n        `;\n        \n        printContainer.appendChild(chapDiv);\n      });\n\n      \/\/ Synchronize visibility details on initial draw\n      togglePrintDetails();\n    }\n\n    function togglePrintDetails() {\n      const showAnswers = document.getElementById('chk-show-answers').checked;\n      const showHints = document.getElementById('chk-show-hints').checked;\n\n      \/\/ Handle answer underlines\n      const answers = document.querySelectorAll('.print-answer');\n      answers.forEach(el => {\n        if (showAnswers) {\n          el.classList.add('underline', 'font-bold', 'decoration-2', 'decoration-indigo-600', 'text-indigo-800');\n        } else {\n          el.classList.remove('underline', 'font-bold', 'decoration-2', 'decoration-indigo-600', 'text-indigo-800');\n        }\n      });\n\n      \/\/ Handle hints line\n      const hints = document.querySelectorAll('.print-hint');\n      hints.forEach(el => {\n        if (showHints) {\n          el.style.display = 'block';\n        } else {\n          el.style.display = 'none';\n        }\n      });\n    }\n\n  <\/script>\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>English Grammar Explorer: Chapters 1-10 Quiz &#038; Worksheet (Bigger Font) \ud83c\udf92 Grammar Explorer (Chapters 1-10) \u5c0f\u4e00\u5c0f\u4e8c\u82f1\u6587\u6587\u6cd5\u4e92\u52d5\u7df4\u7fd2\u8207\u5217\u5370\u7cfb\u7d71 (\u5b57\u578b\u653e\u5927\u7248) \ud83c\udfaf \u4e92\u52d5\u7df4\u7fd2 \ud83d\udda8\ufe0f \u5217\u5370\u8003\u5377 \ud83d\udd0a \ud83d\uddfa\ufe0f \u9078\u64c7\u4f60\u7684\u6587\u6cd5\u5cf6\u5dbc UNIT 01 Loading Chapter&#8230; Loading description&#8230; 0 \/ 20 Score \ud83e\udd89 \u8c93\u982d\u9df9\u5c0f\u53ee\u5680\uff1a \u770b\u4ed4\u7d30\u53e5\u5b50\u88e1\u7684\u95dc\u9375\u5b57\uff0c\u76f8\u4fe1\u81ea\u5df1\uff0c\u9078\u51fa\u6b63\u78ba\u7684\u7b54\u6848\uff01 QUESTION 1 of 20 Loading question sentence&#8230; \u6aa2\u67e5\u7b54\u6848 \ud83d\udca1 \u4e0b\u4e00\u984c \u2794 \ud83d\udda8\ufe0f \u5217\u5370\u8207\u6392\u7248\u8a2d\u5b9a\u63a7\u5236\u53f0 \u81ea\u8a02\u8f38\u51fa\u5167\u5bb9\uff0c\u4e00\u9375\u7522\u51fa\u5b8c\u7f8e\u5be6\u9ad4\u8003\u5377\u3002 \u986f\u793a\u6b63\u78ba\u7b54\u6848 (\u52a0\u5e95\u7dda) \u986f\u793a\u4e2d\u6587\u89e3\u984c\u63d0\u793a \ud83d\udda8\ufe0f &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/wmea.charity\/index.php\/elementary-grammar-in-use-ch-1-10\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Elementary Grammar In Use Ch 1-10&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"elementor_canvas","format":"standard","meta":{"postBodyCss":"","postBodyMargin":[],"postBodyPadding":[],"postBodyBackground":{"backgroundType":"classic","gradient":""},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2016","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/wmea.charity\/index.php\/wp-json\/wp\/v2\/posts\/2016","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wmea.charity\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wmea.charity\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wmea.charity\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wmea.charity\/index.php\/wp-json\/wp\/v2\/comments?post=2016"}],"version-history":[{"count":4,"href":"https:\/\/wmea.charity\/index.php\/wp-json\/wp\/v2\/posts\/2016\/revisions"}],"predecessor-version":[{"id":2020,"href":"https:\/\/wmea.charity\/index.php\/wp-json\/wp\/v2\/posts\/2016\/revisions\/2020"}],"wp:attachment":[{"href":"https:\/\/wmea.charity\/index.php\/wp-json\/wp\/v2\/media?parent=2016"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wmea.charity\/index.php\/wp-json\/wp\/v2\/categories?post=2016"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wmea.charity\/index.php\/wp-json\/wp\/v2\/tags?post=2016"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}