<template>
  <div class="knowledge-area">
    <!-- 漂浮的魔法装饰 -->
    <div class="magic-decor star-1">✨</div>
    <div class="magic-decor star-2">⭐</div>
    <div class="magic-decor star-3">🌟</div>
    <div class="magic-decor star-4">✨</div>
    <div class="magic-decor star-5">⭐</div>

    <!-- 库洛米向导 -->
    <div class="guide-character">
      <div class="guide-avatar">💜</div>
      <div class="guide-bubble">
        <p>欢迎来到知识魔法屋！我是库洛米老师～</p>
      </div>
    </div>

    <div class="area-header">
      <div class="header-decoration">🪄✨📚</div>
      <h2 class="area-title">🎓 知识魔法屋 🎓</h2>
      <p class="area-desc">和库洛米一起，开启奇妙的知识之旅吧！</p>
      <div class="header-decoration">🌈🎨⭐</div>
    </div>

    <div class="subjects">
      <!-- 数学魔法课 -->
      <div class="subject-card math" @click="selectSubject('math')">
        <div class="subject-icon">🔢</div>
        <div class="subject-emoji">🐿️</div>
        <h3 class="subject-title">数学魔法课</h3>
        <p class="subject-desc">和数字松鼠一起冒险</p>
        <div class="subject-reward">⭐ +1 能量</div>
      </div>

      <!-- 语文魔法课 -->
      <div class="subject-card chinese" @click="selectSubject('chinese')">
        <div class="subject-icon">📖</div>
        <div class="subject-emoji">🧚</div>
        <h3 class="subject-title">语文魔法课</h3>
        <p class="subject-desc">帮汉字小精灵拼偏旁</p>
        <div class="subject-reward">⭐ +1 能量</div>
      </div>

      <!-- 英语魔法课 -->
      <div class="subject-card english" @click="selectSubject('english')">
        <div class="subject-icon">🔤</div>
        <div class="subject-emoji">🐦</div>
        <h3 class="subject-title">英语魔法课</h3>
        <p class="subject-desc">和字母小鸟走迷宫</p>
        <div class="subject-reward">⭐ +1 能量</div>
      </div>

      <!-- 科学魔法课 -->
      <div class="subject-card science" @click="selectSubject('science')">
        <div class="subject-icon">🔬</div>
        <div class="subject-emoji">🌱</div>
        <h3 class="subject-title">科学魔法课</h3>
        <p class="subject-desc">在植物实验室做实验</p>
        <div class="subject-reward">⭐ +1 能量</div>
      </div>

      <!-- 日语魔法课 -->
      <div class="subject-card japanese" @click="selectSubject('japanese')">
        <div class="subject-icon">🗾</div>
        <div class="subject-emoji">🌸</div>
        <h3 class="subject-title">日语魔法课</h3>
        <p class="subject-desc">学习简单的日语和50音图</p>
        <div class="subject-reward">⭐ +1 能量</div>
      </div>

      <!-- 地理魔法课 -->
      <div class="subject-card geography" @click="selectSubject('geography')">
        <div class="subject-icon">🗺️</div>
        <div class="subject-emoji">🌏</div>
        <h3 class="subject-title">地理魔法课</h3>
        <p class="subject-desc">学习中国地理常识和南北方差异</p>
        <div class="subject-reward">⭐ +1 能量</div>
      </div>
    </div>

    <!-- 课程内容 -->
    <div class="subject-content" v-if="currentSubject">
      <div class="content-header">
        <h3 class="content-title">{{ currentSubject ? subjectTitles[currentSubject as keyof typeof subjectTitles] : '' }}</h3>
        <button class="back-btn" @click="currentSubject = null">返回</button>
      </div>

      <!-- 任务列表 -->
      <div class="tasks" v-if="!currentGame && currentSubject">
        <div class="daily-progress">
          <h4>今日进度</h4>
          <div class="progress-bar">
            <div class="progress-fill" :style="{ width: ((dailyProgress.completed[currentSubject] || 0) / (dailyLimits[currentSubject] || 25)) * 100 + '%' }"></div>
          </div>
          <span class="progress-text">{{ dailyProgress.completed[currentSubject] || 0 }}/{{ dailyLimits[currentSubject] || 25 }} 题</span>
        </div>
        <div v-for="(task, index) in (tasks[currentSubject] || [])" :key="index" class="task-card">
          <div class="task-icon">{{ task.icon }}</div>
          <div class="task-info">
            <h4 class="task-title">{{ task.title }}</h4>
            <p class="task-desc">{{ task.description }}</p>
            <div class="task-reward">
              <span class="reward-icon">⭐</span>
              <span>{{ task.reward }} 颗星星能量</span>
            </div>
          </div>
          <button class="task-btn" @click="startGame(currentSubject || '', index)" :disabled="isDailyLimitReached(currentSubject || '')">
            {{ task.completed ? '已完成' : isDailyLimitReached(currentSubject || '') ? '今日已达上限' : '开始' }}
          </button>
        </div>
      </div>

      <!-- 游戏内容 -->
      <div class="game-content" v-if="currentGame">
        <!-- 数学游戏 -->
        <div v-if="currentGame.subject === 'math'" class="math-game">
          <div class="game-question">
            <div class="question-with-audio">
              <h4>{{ currentGame.question }}</h4>
              <button class="audio-btn" @click="playAudio(currentGame.question)">🔊</button>
            </div>
            <div class="answer-options">
              <div 
                v-for="(option, idx) in currentGame.options" 
                :key="idx"
                class="option-btn"
                @click="checkAnswer(option)"
              >
                <span>{{ option }}</span>
                <button class="part-audio-btn" @click.stop="playAudio(option)">🔊</button>
              </div>
            </div>
          </div>
          <div class="game-feedback" v-if="showFeedback">
            <div :class="['feedback-message', isCorrect ? 'correct' : 'incorrect']">
              {{ feedbackMessage }}
            </div>
            <button class="next-btn" @click="nextQuestion">下一题</button>
          </div>
        </div>

        <!-- 语文游戏 -->
        <div v-else-if="currentGame.subject === 'chinese'" class="chinese-game">
          <div class="game-question">
            <div class="question-with-audio">
              <h4>{{ currentGame.question }}</h4>
              <button class="audio-btn" v-if="currentGame.audio" @click="playAudio(currentGame.audio)">
                🔊
              </button>
            </div>
            <!-- 选择题格式 -->
            <div class="word-options" v-if="currentGame.options">
              <div
                v-for="(option, idx) in currentGame.options"
                :key="idx"
                class="option-btn"
                @click="checkChineseAnswer(option)"
              >
                <span>{{ option }}</span>
                <button class="part-audio-btn" @click.stop="playAudio(option)">🔊</button>
              </div>
            </div>
            <!-- 拼字格式（兼容旧数据） -->
            <div class="character-parts" v-if="currentGame.parts">
              <div class="part" v-for="(part, idx) in currentGame.parts" :key="idx" @click="selectPart(part)">
                <span>{{ part }}</span>
                <button class="part-audio-btn" @click.stop="playAudio(part)">🔊</button>
              </div>
            </div>
            <div class="current-answer" v-if="currentGame.parts && currentAnswer">
              <span>当前答案: </span>
              <span class="answer">{{ currentAnswer }}</span>
              <button class="audio-btn" @click="playAudio(currentAnswer)">
                🔊
              </button>
            </div>
          </div>
          <button class="submit-btn" v-if="currentGame.parts && currentAnswer" @click="checkChineseAnswer">提交答案</button>
          <div class="game-feedback" v-if="showFeedback">
            <div :class="['feedback-message', isCorrect ? 'correct' : 'incorrect']">
              {{ feedbackMessage }}
            </div>
            <button class="next-btn" @click="nextQuestion">下一题</button>
          </div>
        </div>

        <!-- 英语游戏 -->
        <div v-else-if="currentGame.subject === 'english'" class="english-game">
          <div class="game-question">
            <div class="question-with-audio">
              <h4>{{ currentGame.question }}</h4>
              <button class="audio-btn" @click="playAudio(currentGame.question)">
                🔊
              </button>
            </div>
            <div class="word-options">
              <div 
                v-for="(option, idx) in currentGame.options" 
                :key="idx"
                class="option-btn"
                @click="checkEnglishAnswer(option)"
              >
                <span>{{ option }}</span>
                <div class="option-audio-btn" @click.stop="playAudio(option)">🔊</div>
              </div>
            </div>
          </div>
          <div class="game-feedback" v-if="showFeedback">
            <div :class="['feedback-message', isCorrect ? 'correct' : 'incorrect']">
              {{ feedbackMessage }}
            </div>
            <button class="next-btn" @click="nextQuestion">下一题</button>
          </div>
        </div>

        <!-- 科学游戏 -->
        <div v-else-if="currentGame.subject === 'science'" class="science-game">
          <div class="game-question">
            <div class="question-with-audio">
              <h4>{{ currentGame.question }}</h4>
              <button class="audio-btn" @click="playAudio(currentGame.question)">🔊</button>
            </div>
            <div class="experiment-area">
              <div class="experiment-item" v-for="(item, idx) in currentGame.items" :key="idx">
                <div class="item-icon">{{ item.icon }}</div>
                <div class="item-name-with-audio">
                  <span>{{ item.name }}</span>
                  <button class="part-audio-btn" @click.stop="playAudio(item.name)">🔊</button>
                </div>
                <button class="use-btn" @click="useItem(item)">
                  使用
                </button>
              </div>
            </div>
            <div class="experiment-result" v-if="experimentResult">
              <div class="result-with-audio">
                <p>{{ experimentResult }}</p>
                <button class="audio-btn" @click="playAudio(experimentResult)">🔊</button>
              </div>
            </div>
          </div>
          <button class="submit-btn" @click="checkScienceAnswer">完成实验</button>
          <div class="game-feedback" v-if="showFeedback">
            <div :class="['feedback-message', isCorrect ? 'correct' : 'incorrect']">
              {{ feedbackMessage }}
            </div>
            <button class="next-btn" @click="nextQuestion">下一题</button>
          </div>
        </div>

        <!-- 日语游戏 -->
        <div v-else-if="currentGame.subject === 'japanese'" class="japanese-game">
          <div class="game-question">
            <div class="question-with-audio">
              <h4>{{ currentGame.question }}</h4>
              <button class="audio-btn" @click="playAudio(currentGame.question)">
                🔊
              </button>
            </div>
            <div class="word-options">
              <div 
                v-for="(option, idx) in currentGame.options" 
                :key="idx"
                class="option-btn"
                @click="checkJapaneseAnswer(option)"
              >
                <span>{{ option }}</span>
                <div class="option-audio-btn" @click.stop="playAudio(option)">🔊</div>
              </div>
            </div>
          </div>
          <div class="game-feedback" v-if="showFeedback">
            <div :class="['feedback-message', isCorrect ? 'correct' : 'incorrect']">
              {{ feedbackMessage }}
            </div>
            <button class="next-btn" @click="nextQuestion">下一题</button>
          </div>
        </div>

        <!-- 地理游戏 -->
        <div v-else-if="currentGame.subject === 'geography'" class="geography-game">
          <div class="game-question">
            <div class="question-with-audio">
              <h4>{{ currentGame.question }}</h4>
              <button class="audio-btn" @click="playAudio(currentGame.question)">🔊</button>
            </div>
            <div class="word-options">
              <div 
                v-for="(option, idx) in currentGame.options" 
                :key="idx"
                class="option-btn"
                @click="checkGeographyAnswer(option)"
              >
                <span>{{ option }}</span>
                <div class="option-audio-btn" @click.stop="playAudio(option)">🔊</div>
              </div>
            </div>
          </div>
          <div class="game-feedback" v-if="showFeedback">
            <div :class="['feedback-message', isCorrect ? 'correct' : 'incorrect']">
              {{ feedbackMessage }}
            </div>
            <button class="next-btn" @click="nextQuestion">下一题</button>
          </div>
        </div>
      </div>
    </div>
  </div>
</template>

<script setup lang="ts">
import { ref, onMounted, computed } from 'vue';
import { useStarEnergyStore } from '../stores/starEnergy';

// 获取当前用户
const getCurrentUser = () => {
  return localStorage.getItem('currentUser') || 'default';
};

const starEnergyStore = useStarEnergyStore();
const currentSubject = ref<string | null>(null);
const currentGame = ref<any>(null);
const showFeedback = ref(false);
const isCorrect = ref(false);
const feedbackMessage = ref('');
const currentAnswer = ref('');
const experimentResult = ref('');
const currentQuestionIndex = ref(0);

// 每日题目上限
const dailyLimits = {
  math: 25,
  chinese: 25,
  english: 25,
  science: 25,
  japanese: 25,
  geography: 25
};

// 题目进度跟踪
const progress = ref({
  math: {
    counting: 0,
    shapes: 0,
    calculation: 0
  },
  chinese: {
    radicals: 0,
    pinyin: 0,
    words: 0
  },
  english: {
    maze: 0,
    animal: 0,
    dialogue: 0
  },
  science: {
    plants: 0,
    buoyancy: 0,
    colors: 0,
    chemistry: 0,
    physics: 0,
    experiments: 0
  },
  japanese: {
    hiragana: 0,
    animals: 0,
    fruits: 0,
    body: 0,
    directions: 0,
    items: 0,
    greetings: 0
  },
  geography: {
    map: 0,
    basics: 0,
    northSouth: 0
  }
});

// 每日完成记录
const dailyProgress = ref({
  date: new Date().toDateString(),
  completed: {
    math: 0,
    chinese: 0,
    english: 0,
    science: 0,
    japanese: 0,
    geography: 0
  }
});

// 检查是否达到每日上限
const isDailyLimitReached = (subject: string) => {
  console.log('检查每日上限:', subject);
  const completed = dailyProgress.value.completed[subject] || 0;
  const limit = dailyLimits[subject] || 25;
  console.log('已完成:', completed, '上限:', limit);
  return completed >= limit;
};

// 初始化时加载语音合成API的voices和进度数据
onMounted(() => {
  // 触发语音合成API的加载
  window.speechSynthesis.getVoices();
  
  // 加载进度数据
  loadProgress();
  
  // 检查日期是否更新
  checkDateUpdate();
});

// 加载进度数据
const loadProgress = () => {
  const user = getCurrentUser();
  const savedProgress = localStorage.getItem(`knowledgeProgress_${user}`);
  if (savedProgress) {
    try {
      const data = JSON.parse(savedProgress);
      if (data.progress) {
        progress.value = data.progress;
      }
      if (data.dailyProgress) {
        dailyProgress.value = data.dailyProgress;
      }
      if (data.tasks) {
        tasks.value = data.tasks;
      }
    } catch (error) {
      console.error('加载进度数据失败:', error);
    }
  }
};

// 保存进度数据
const saveProgress = () => {
  const user = getCurrentUser();
  const data = {
    progress: progress.value,
    dailyProgress: dailyProgress.value,
    tasks: tasks.value
  };
  localStorage.setItem(`knowledgeProgress_${user}`, JSON.stringify(data));
};

// 检查日期更新
const checkDateUpdate = () => {
  const today = new Date().toDateString();
  if (dailyProgress.value.date !== today) {
    // 新的一天，重置每日进度
    dailyProgress.value = {
      date: today,
      completed: {
        math: 0,
        chinese: 0,
        english: 0,
        science: 0,
        japanese: 0,
        geography: 0
      }
    };
    
    // 任务的完成状态保持不变，以保持持久学习的状态
    
    saveProgress();
  }
};


// 学科标题
const subjectTitles = {
  math: '数学魔法课',
  chinese: '语文魔法课',
  english: '英语魔法课',
  science: '科学魔法课',
  japanese: '日语魔法课',
  geography: '地理魔法课'
};

// 任务数据
const tasks = ref({
  math: [
    {
      title: '数农场里的小鸡',
      description: '和 "数字松鼠" 一起数农场里的小鸡（1-100 认知）',
      reward: 5,
      completed: false,
      icon: '🐿️'
    },
    {
      title: '搭建几何城堡',
      description: '用几何积木搭建城堡（形状认知）',
      reward: 5,
      completed: false,
      icon: '🏰'
    },
    {
      title: '超市收银算账',
      description: '模拟超市收银算账（加减法）',
      reward: 5,
      completed: false,
      icon: '💰'
    }
  ],
  chinese: [
    {
      title: '拼偏旁游戏',
      description: '帮 "汉字小精灵" 拼偏旁（氵 + 可 = 河）',
      reward: 5,
      completed: false,
      icon: '✏️'
    },
    {
      title: '拼音练习',
      description: '学习声母、韵母和整体认读音节',
      reward: 5,
      completed: false,
      icon: '🎢'
    },
    {
      title: '词语认读',
      description: '认识一年级常用词语，快乐学习',
      reward: 5,
      completed: false,
      icon: '📚'
    }
  ],
  english: [
    {
      title: '字母迷宫',
      description: '和 "字母小鸟" 走迷宫（字母认知）',
      reward: 5,
      completed: false,
      icon: '🐦'
    },
    {
      title: '动物喂食',
      description: '给动物园的动物喂食物（跟读单词）',
      reward: 5,
      completed: false,
      icon: '🐯'
    },
    {
      title: '情景对话',
      description: '在 "情景飞船" 里用英语打招呼（对话练习）',
      reward: 5,
      completed: false,
      icon: '🚀'
    }
  ],
  science: [
    {
      title: '植物生长',
      description: '在 "植物实验室" 给小花浇水、晒太阳，观察它长大（生物）',
      reward: 8,
      completed: false,
      icon: '🌱'
    },
    {
      title: '浮力实验',
      description: '往 "浮力池塘" 放石头、木块，看谁会沉谁会浮（物理）',
      reward: 8,
      completed: false,
      icon: '🌊'
    },
    {
      title: '颜色混合',
      description: '用 "颜色魔法瓶" 混合色素，变出彩虹色（化学）',
      reward: 8,
      completed: false,
      icon: '🌈'
    },
    {
      title: '化学实验',
      description: '探索化学反应、蒸汽气化等有趣的化学现象',
      reward: 10,
      completed: false,
      icon: '🧪'
    },
    {
      title: '物理实验',
      description: '了解电池、电路、磁铁等物理原理',
      reward: 10,
      completed: false,
      icon: '⚡'
    },
    {
      title: '科学小实验',
      description: '动手做有趣的科学小实验，探索科学奥秘',
      reward: 12,
      completed: false,
      icon: '🔬'
    }
  ],
  japanese: [
    {
      title: '50音图学习',
      description: '学习日语的基础50音图，掌握平假名的发音和书写',
      reward: 5,
      completed: false,
      icon: 'あ'
    },
    {
      title: '小动物日语',
      description: '学习常见小动物的日语名称和发音',
      reward: 5,
      completed: false,
      icon: '🐱'
    },
    {
      title: '水果日语',
      description: '学习各种水果的日语名称和发音',
      reward: 5,
      completed: false,
      icon: '🍎'
    },
    {
      title: '身体部位日语',
      description: '学习身体各部位的日语名称和发音',
      reward: 5,
      completed: false,
      icon: '👤'
    },
    {
      title: '方向日语',
      description: '学习前后左右等方向的日语表达',
      reward: 5,
      completed: false,
      icon: '🧭'
    },
    {
      title: '日常物品日语',
      description: '学习生活中常用物品的日语名称',
      reward: 5,
      completed: false,
      icon: '🏠'
    },
    {
      title: '问候语日语',
      description: '学习日常问候语和礼貌用语的日语表达',
      reward: 5,
      completed: false,
      icon: '👋'
    }
  ],
  geography: [
    {
      title: '中国地图认知',
      description: '认识中国地图的形状和主要省份',
      reward: 5,
      completed: false,
      icon: '🗺️'
    },
    {
      title: '中国地理常识',
      description: '学习中国的地理位置、面积等基本常识',
      reward: 5,
      completed: false,
      icon: '🌏'
    },
    {
      title: '南北方差异',
      description: '了解中国南北方的地理文化差异',
      reward: 5,
      completed: false,
      icon: '🌵'
    }
  ]
});

// 游戏数据
const gameData = {
  geography: {
    // 中国地图认知
    map: [
      { question: '中国地图的形状像什么？', options: ['公鸡', '兔子', '大象', '龙'], answer: '公鸡' },
      { question: '中国的首都是哪里？', options: ['上海', '北京', '广州', '深圳'], answer: '北京' },
      { question: '中国最大的岛屿是哪个？', options: ['海南岛', '台湾岛', '崇明岛', '舟山群岛'], answer: '台湾岛' },
      { question: '中国最长的河流是哪条？', options: ['黄河', '长江', '珠江', '松花江'], answer: '长江' },
      { question: '中国的母亲河是哪条？', options: ['长江', '黄河', '珠江', '淮河'], answer: '黄河' }
    ],
    // 中国地理常识
    basics: [
      { question: '中国位于哪个大洲？', options: ['欧洲', '亚洲', '非洲', '北美洲'], answer: '亚洲' },
      { question: '中国的土地面积大约是多少？', options: ['960万平方公里', '860万平方公里', '760万平方公里', '660万平方公里'], answer: '960万平方公里' },
      { question: '中国的邻国中，面积最大的是哪个国家？', options: ['俄罗斯', '印度', '蒙古', '朝鲜'], answer: '俄罗斯' },
      { question: '中国的四大直辖市是北京、上海、天津和哪里？', options: ['重庆', '广州', '深圳', '成都'], answer: '重庆' },
      { question: '中国的地势特点是什么？', options: ['东高西低', '西高东低', '南高北低', '北高南低'], answer: '西高东低' },
      { question: '中国最大的高原是哪个？', options: ['青藏高原', '内蒙古高原', '黄土高原', '云贵高原'], answer: '青藏高原' },
      { question: '中国最大的平原是哪个？', options: ['东北平原', '华北平原', '长江中下游平原', '关中平原'], answer: '东北平原' },
      { question: '中国的南海诸岛属于哪个省级行政区？', options: ['广东省', '海南省', '福建省', '台湾省'], answer: '海南省' },
      { question: '中国的五岳中，位于山东省的是哪座山？', options: ['泰山', '华山', '衡山', '恒山'], answer: '泰山' }
    ],
    // 南北方差异
    northSouth: [
      { question: '中国南北方的分界线是什么？', options: ['秦岭-淮河', '长江', '黄河', '长城'], answer: '秦岭-淮河' },
      { question: '北方地区的主要粮食作物是什么？', options: ['小麦', '水稻', '玉米', '高粱'], answer: '小麦' },
      { question: '南方地区的主要粮食作物是什么？', options: ['水稻', '小麦', '玉米', '高粱'], answer: '水稻' },
      { question: '北方人喜欢吃的面食是？', options: ['面条', '米饭', '馒头', '饺子'], answer: '面条' },
      { question: '南方人喜欢吃的主食是？', options: ['米饭', '面条', '馒头', '饺子'], answer: '米饭' }
    ]
  },
  math: {
    // 数数练习（1-100 认知）
    counting: [
      // 原有题目
      { question: '农场里有5只小鸡，又来了3只，现在一共有几只？', options: ['6', '7', '8', '9'], answer: '8' },
      { question: '树上有10只鸟，飞走了2只，还剩几只？', options: ['6', '7', '8', '9'], answer: '8' },
      { question: '教室里有8个学生，又来了5个，现在一共有几个？', options: ['11', '12', '13', '14'], answer: '13' },
      { question: '篮子里有15个苹果，吃了4个，还剩几个？', options: ['9', '10', '11', '12'], answer: '11' },
      { question: '停车场有20辆车，开走了7辆，还剩几辆？', options: ['11', '12', '13', '14'], answer: '13' },
      { question: '书包里有6本书，又放了3本，现在有几本？', options: ['8', '9', '10', '11'], answer: '9' },
      { question: '花园里有12朵花，摘了5朵，还剩几朵？', options: ['6', '7', '8', '9'], answer: '7' },
      { question: '池塘里有7条小鱼，又来了6条，一共有几条？', options: ['11', '12', '13', '14'], answer: '13' },
      { question: '盒子里有18颗糖，分给同学8颗，还剩几颗？', options: ['8', '9', '10', '11'], answer: '10' },
      { question: '操场上跑着14个小朋友，3个回家了，还剩几个？', options: ['9', '10', '11', '12'], answer: '11' },
      { question: '妈妈买了9个橘子，又买了7个，一共有几个？', options: ['15', '16', '17', '18'], answer: '16' },
      { question: '图书馆有25本书，借走10本，还剩几本？', options: ['13', '14', '15', '16'], answer: '15' },
      { question: '小明有16颗星星，妹妹给了他4颗，现在有几颗？', options: ['18', '19', '20', '21'], answer: '20' },
      { question: '树上有30片叶子，风吹落了8片，还剩几片？', options: ['20', '21', '22', '23'], answer: '22' },
      { question: '盒子里有40个彩球，拿出15个，还剩几个？', options: ['23', '24', '25', '26'], answer: '25' },
      { question: '草地上有50朵花，摘了12朵，还剩几朵？', options: ['36', '37', '38', '39'], answer: '38' },
      { question: '班级有45个学生，转走了8个，还剩几个？', options: ['35', '36', '37', '38'], answer: '37' },
      { question: '家里有60个苹果，吃了18个，还剩几个？', options: ['40', '41', '42', '43'], answer: '42' },
      { question: '动物园有70只动物，又来了20只，一共有几只？', options: ['88', '89', '90', '91'], answer: '90' },
      { question: '学校有100本图书，借出去35本，还剩几本？', options: ['63', '64', '65', '66'], answer: '65' },
      // 新添加题目 - 5以内数的认识和加、减法
      { question: '1+1=?', options: ['1', '2', '3', '4'], answer: '2' },
      { question: '2+2=?', options: ['3', '4', '5', '6'], answer: '4' },
      { question: '3+2=?', options: ['4', '5', '6', '7'], answer: '5' },
      { question: '4-1=?', options: ['1', '2', '3', '4'], answer: '3' },
      { question: '5-2=?', options: ['2', '3', '4', '5'], answer: '3' },
      { question: '0+5=?', options: ['0', '1', '5', '10'], answer: '5' },
      { question: '5-0=?', options: ['0', '5', '10', '15'], answer: '5' },
      { question: '3+0=?', options: ['0', '3', '6', '9'], answer: '3' },
      // 新添加题目 - 6～10的认识和加、减法
      { question: '6+3=?', options: ['7', '8', '9', '10'], answer: '9' },
      { question: '7+2=?', options: ['8', '9', '10', '11'], answer: '9' },
      { question: '8+2=?', options: ['8', '9', '10', '11'], answer: '10' },
      { question: '9-4=?', options: ['4', '5', '6', '7'], answer: '5' },
      { question: '10-3=?', options: ['6', '7', '8', '9'], answer: '7' },
      { question: '6+4=?', options: ['8', '9', '10', '11'], answer: '10' },
      { question: '7+3=?', options: ['8', '9', '10', '11'], answer: '10' },
      // 新添加题目 - 11～20的认识
      { question: '11+2=?', options: ['12', '13', '14', '15'], answer: '13' },
      { question: '15-3=?', options: ['10', '11', '12', '13'], answer: '12' },
      { question: '18-5=?', options: ['12', '13', '14', '15'], answer: '13' },
      { question: '20-2=?', options: ['16', '17', '18', '19'], answer: '18' },
      // 新添加题目 - 20以内的进位加法
      { question: '9+3=?', options: ['10', '11', '12', '13'], answer: '12' },
      { question: '8+5=?', options: ['11', '12', '13', '14'], answer: '13' },
      { question: '7+6=?', options: ['12', '13', '14', '15'], answer: '13' },
      { question: '6+7=?', options: ['12', '13', '14', '15'], answer: '13' },
      { question: '5+8=?', options: ['12', '13', '14', '15'], answer: '13' },
      // 新添加题目 - 20以内的退位减法
      { question: '12-9=?', options: ['1', '2', '3', '4'], answer: '3' },
      { question: '15-8=?', options: ['5', '6', '7', '8'], answer: '7' },
      { question: '14-7=?', options: ['5', '6', '7', '8'], answer: '7' },
      { question: '13-6=?', options: ['5', '6', '7', '8'], answer: '7' },
      // 新添加题目 - 100以内数的认识
      { question: '20+30=?', options: ['40', '50', '60', '70'], answer: '50' },
      { question: '40+50=?', options: ['70', '80', '90', '100'], answer: '90' },
      { question: '60-20=?', options: ['30', '40', '50', '60'], answer: '40' },
      { question: '80-30=?', options: ['40', '50', '60', '70'], answer: '50' },
      { question: '30+5=?', options: ['30', '35', '40', '45'], answer: '35' },
      { question: '40+7=?', options: ['40', '47', '50', '57'], answer: '47' },
      { question: '25-5=?', options: ['15', '20', '25', '30'], answer: '20' },
      { question: '37-7=?', options: ['20', '30', '40', '50'], answer: '30' }
    ].sort(() => Math.random() - 0.5), // 随机打乱顺序
    // 形状认知（混合难度）
    shapes: [
      // 原有题目
      { question: '下列哪个是圆形？', options: ['🔺', '⬜', '🔴', '▸'], answer: '🔴' },
      { question: '下列哪个是三角形？', options: ['🔴', '⬜', '🔺', '⭕'], answer: '🔺' },
      { question: '下列哪个是正方形？', options: ['🔴', '⬜', '🔺', '⭕'], answer: '⬜' },
      { question: '下列哪个是长方形？', options: ['🔴', '⬜', '🔺', '▭'], answer: '▭' },
      { question: '太阳是什么形状？', options: ['方形', '圆形', '三角形', '长方形'], answer: '圆形' },
      { question: '书本是什么形状？', options: ['圆形', '长方形', '三角形', '椭圆形'], answer: '长方形' },
      { question: '三角形有几条边？', options: ['2条', '3条', '4条', '5条'], answer: '3条' },
      { question: '正方形有几条边？', options: ['3条', '4条', '5条', '6条'], answer: '4条' },
      { question: '下列哪个物体是圆形的？', options: ['书本', '球', '铅笔盒', '桌子'], answer: '球' },
      { question: '车轮是什么形状？', options: ['方形', '三角形', '圆形', '长方形'], answer: '圆形' },
      
      // 新添加题目 - 认识立体图形
      { question: '下列哪个是正方体？', options: ['🔲', '📦', '⚪', '🔺'], answer: '📦' },
      { question: '下列哪个是长方体？', options: ['🔲', '📦', '⚪', '🔺'], answer: '📦' },
      { question: '下列哪个是球体？', options: ['🔲', '📦', '⚪', '🔺'], answer: '⚪' },
      { question: '下列哪个是圆柱体？', options: ['🔲', '📦', '⚪', '🥫'], answer: '🥫' },
      { question: '正方体有几个面？', options: ['4个', '6个', '8个', '12个'], answer: '6个' },
      { question: '长方体有几个面？', options: ['4个', '6个', '8个', '12个'], answer: '6个' },
      
      // 新添加题目 - 认识平面图形
      { question: '下列哪个是平行四边形？', options: ['🔺', '⬜', '▭', '🔷'], answer: '🔷' },
      { question: '下列哪个是梯形？', options: ['🔺', '⬜', '▭', '🔶'], answer: '🔶' },
      { question: '圆形有几条边？', options: ['0条', '1条', '2条', '3条'], answer: '0条' },
      { question: '平行四边形有几条边？', options: ['3条', '4条', '5条', '6条'], answer: '4条' },
      
      // 原有中等难度题目
      { question: '一个正方形有几条边和几个角？', options: ['3条边3个角', '4条边4个角', '5条边5个角', '6条边6个角'], answer: '4条边4个角' },
      { question: '下列哪个图形有5条边？', options: ['三角形', '正方形', '五边形', '六边形'], answer: '五边形' },
      { question: '一个长方形的对边有什么特点？', options: ['长度相等', '长度不等', '一边长一边短', '没有特点'], answer: '长度相等' },
      { question: '用两个三角形可以拼成什么图形？', options: ['正方形', '长方形', '菱形', '以上都可以'], answer: '以上都可以' },
      { question: '下列哪个图形是轴对称图形？', options: ['平行四边形', '梯形', '圆形', '不规则图形'], answer: '圆形' },
      { question: '一个立方体有几个面？', options: ['4个面', '6个面', '8个面', '12个面'], answer: '6个面' },
      { question: '下列哪个图形的内角和是180度？', options: ['三角形', '正方形', '五边形', '六边形'], answer: '三角形' },
      { question: '一个圆的直径是半径的几倍？', options: ['1倍', '2倍', '3倍', '4倍'], answer: '2倍' },
      { question: '下列哪个是立体图形？', options: ['正方形', '圆形', '长方体', '三角形'], answer: '长方体' },
      { question: '用4个相同的正方形可以拼成一个大的什么图形？', options: ['正方形', '长方形', '三角形', '圆形'], answer: '正方形' }
    ].sort(() => Math.random() - 0.5), // 随机打乱顺序
    // 加减法练习
    calculation: [
      // 原有题目
      { question: '3 + 5 = ?', options: ['6', '7', '8', '9'], answer: '8' },
      { question: '7 + 6 = ?', options: ['11', '12', '13', '14'], answer: '13' },
      { question: '9 + 8 = ?', options: ['15', '16', '17', '18'], answer: '17' },
      { question: '12 - 5 = ?', options: ['5', '6', '7', '8'], answer: '7' },
      { question: '15 - 7 = ?', options: ['6', '7', '8', '9'], answer: '8' },
      { question: '20 - 8 = ?', options: ['10', '11', '12', '13'], answer: '12' },
      { question: '25 + 15 = ?', options: ['38', '39', '40', '41'], answer: '40' },
      { question: '18 + 22 = ?', options: ['38', '39', '40', '41'], answer: '40' },
      { question: '45 - 18 = ?', options: ['25', '26', '27', '28'], answer: '27' },
      { question: '36 - 19 = ?', options: ['15', '16', '17', '18'], answer: '17' },
      { question: '14 + 26 = ?', options: ['38', '39', '40', '41'], answer: '40' },
      { question: '33 + 17 = ?', options: ['48', '49', '50', '51'], answer: '50' },
      { question: '52 - 28 = ?', options: ['22', '23', '24', '25'], answer: '24' },
      { question: '67 - 39 = ?', options: ['26', '27', '28', '29'], answer: '28' },
      { question: '48 + 35 = ?', options: ['81', '82', '83', '84'], answer: '83' },
      { question: '72 + 28 = ?', options: ['98', '99', '100', '101'], answer: '100' },
      { question: '85 - 47 = ?', options: ['36', '37', '38', '39'], answer: '38' },
      { question: '94 - 56 = ?', options: ['36', '37', '38', '39'], answer: '38' },
      { question: '56 + 44 = ?', options: ['98', '99', '100', '101'], answer: '100' },
      { question: '78 + 22 = ?', options: ['98', '99', '100', '101'], answer: '100' },
      // 新添加题目 - 连加、连减、加减混合
      { question: '2+3+5=?', options: ['8', '9', '10', '11'], answer: '10' },
      { question: '10-2-3=?', options: ['3', '4', '5', '6'], answer: '5' },
      { question: '5+3-2=?', options: ['5', '6', '7', '8'], answer: '6' },
      { question: '8-3+2=?', options: ['5', '6', '7', '8'], answer: '7' },
      // 新添加题目 - 100以内的口算加、减法
      { question: '23+5=?', options: ['26', '27', '28', '29'], answer: '28' },
      { question: '35+40=?', options: ['70', '75', '80', '85'], answer: '75' },
      { question: '47+8=?', options: ['53', '54', '55', '56'], answer: '55' },
      { question: '62-30=?', options: ['30', '31', '32', '33'], answer: '32' },
      { question: '54-7=?', options: ['45', '46', '47', '48'], answer: '47' },
      // 新添加题目 - 100以内的笔算加、减法
      { question: '25+36=?', options: ['59', '60', '61', '62'], answer: '61' },
      { question: '48+35=?', options: ['81', '82', '83', '84'], answer: '83' },
      { question: '72-28=?', options: ['42', '43', '44', '45'], answer: '44' },
      { question: '65-37=?', options: ['26', '27', '28', '29'], answer: '28' }
    ].sort(() => Math.random() - 0.5) // 随机打乱顺序
  },
  chinese: {
    // 偏旁组字 - 学习偏旁部首（一年级常用偏旁）
    radicals: [
      // 原有题目
      { question: '请选择正确的偏旁部首组成"江"字', options: ['氵', '木', '艹', '口'], answer: '氵', audio: '江，三点水旁' },
      { question: '请选择正确的偏旁部首组成"树"字', options: ['木', '氵', '艹', '口'], answer: '木', audio: '树，木字旁' },
      { question: '请选择正确的偏旁部首组成"花"字', options: ['艹', '木', '氵', '口'], answer: '艹', audio: '花，草字头' },
      { question: '请选择正确的偏旁部首组成"说"字', options: ['讠', '木', '氵', '艹'], answer: '讠', audio: '说，言字旁' },
      { question: '请选择正确的偏旁部首组成"好"字', options: ['女', '氵', '木', '艹'], answer: '女', audio: '好，女字旁' },
      { question: '请选择正确的偏旁部首组成"爸"字', options: ['父', '母', '女', '子'], answer: '父', audio: '爸爸，父字头' },
      { question: '请选择正确的偏旁部首组成"妈"字', options: ['女', '父', '子', '口'], answer: '女', audio: '妈妈，女字旁' },
      { question: '请选择正确的偏旁部首组成"河"字', options: ['氵', '木', '艹', '口'], answer: '氵', audio: '河，三点水旁' },
      { question: '请选择正确的偏旁部首组成"林"字', options: ['木', '氵', '艹', '口'], answer: '木', audio: '林，木字旁' },
      { question: '请选择正确的偏旁部首组成"明"字', options: ['日', '月', '木', '水'], answer: '日', audio: '明，日字旁' },
      { question: '请选择正确的偏旁部首组成"吃"字', options: ['口', '氵', '木', '艹'], answer: '口', audio: '吃，口字旁' },
      { question: '请选择正确的偏旁部首组成"笑"字', options: ['竹', '木', '氵', '艹'], answer: '竹', audio: '笑，竹字头' },
      { question: '请选择正确的偏旁部首组成"跑"字', options: ['⻊', '氵', '木', '艹'], answer: '⻊', audio: '跑，足字旁' },
      { question: '请选择正确的偏旁部首组成"听"字', options: ['口', '氵', '木', '艹'], answer: '口', audio: '听，口字旁' },
      { question: '请选择正确的偏旁部首组成"看"字', options: ['手', '氵', '木', '艹'], answer: '手', audio: '看，手字旁' },
      { question: '请选择正确的偏旁部首组成"和"字', options: ['禾', '氵', '木', '艹'], answer: '禾', audio: '和，禾字旁' },
      { question: '请选择正确的偏旁部首组成"写"字', options: ['宀', '氵', '木', '艹'], answer: '宀', audio: '写，宝盖头' },
      { question: '请选择正确的偏旁部首组成"字"字', options: ['宀', '氵', '木', '艹'], answer: '宀', audio: '字，宝盖头' },
      { question: '请选择正确的偏旁部首组成"学"字', options: ['⺍', '氵', '木', '艹'], answer: '⺍', audio: '学，学字头' },
      { question: '请选择正确的偏旁部首组成"画"字', options: ['田', '氵', '木', '艹'], answer: '田', audio: '画，田字旁' },
      // 新添加题目 - 第一单元·识字
      { question: '请选择正确的偏旁部首组成"天"字', options: ['一', '二', '大', '人'], answer: '一', audio: '天，横字头' },
      { question: '请选择正确的偏旁部首组成"地"字', options: ['土', '氵', '木', '口'], answer: '土', audio: '地，提土旁' },
      { question: '请选择正确的偏旁部首组成"人"字', options: ['人', '亻', '口', '木'], answer: '人', audio: '人，人字旁' },
      { question: '请选择正确的偏旁部首组成"金"字', options: ['金', '钅', '木', '氵'], answer: '金', audio: '金，金字旁' },
      { question: '请选择正确的偏旁部首组成"木"字', options: ['木', '氵', '艹', '口'], answer: '木', audio: '木，木字旁' },
      { question: '请选择正确的偏旁部首组成"水"字', options: ['水', '氵', '木', '艹'], answer: '水', audio: '水，水字旁' },
      { question: '请选择正确的偏旁部首组成"火"字', options: ['火', '氵', '木', '艹'], answer: '火', audio: '火，火字旁' },
      { question: '请选择正确的偏旁部首组成"土"字', options: ['土', '氵', '木', '艹'], answer: '土', audio: '土，提土旁' },
      { question: '请选择正确的偏旁部首组成"口"字', options: ['口', '氵', '木', '艹'], answer: '口', audio: '口，口字旁' },
      { question: '请选择正确的偏旁部首组成"耳"字', options: ['耳', '氵', '木', '艹'], answer: '耳', audio: '耳，耳字旁' },
      { question: '请选择正确的偏旁部首组成"目"字', options: ['目', '氵', '木', '艹'], answer: '目', audio: '目，目字旁' },
      { question: '请选择正确的偏旁部首组成"手"字', options: ['手', '扌', '氵', '木'], answer: '手', audio: '手，手字旁' },
      { question: '请选择正确的偏旁部首组成"足"字', options: ['足', '⻊', '氵', '木'], answer: '足', audio: '足，足字旁' },
      { question: '请选择正确的偏旁部首组成"日"字', options: ['日', '氵', '木', '艹'], answer: '日', audio: '日，日字旁' },
      { question: '请选择正确的偏旁部首组成"月"字', options: ['月', '氵', '木', '艹'], answer: '月', audio: '月，月字旁' },
      { question: '请选择正确的偏旁部首组成"山"字', options: ['山', '氵', '木', '艹'], answer: '山', audio: '山，山字旁' },
      { question: '请选择正确的偏旁部首组成"川"字', options: ['川', '氵', '木', '艹'], answer: '川', audio: '川，川字旁' },
      // 新添加题目 - 第六单元·识字
      { question: '请选择正确的偏旁部首组成"对"字', options: ['又', '氵', '木', '艹'], answer: '又', audio: '对，又字旁' },
      { question: '请选择正确的偏旁部首组成"书"字', options: ['乛', '氵', '木', '艹'], answer: '乛', audio: '书，折文旁' },
      { question: '请选择正确的偏旁部首组成"包"字', options: ['勹', '氵', '木', '艹'], answer: '勹', audio: '包，包字头' },
      { question: '请选择正确的偏旁部首组成"升"字', options: ['丿', '氵', '木', '艹'], answer: '丿', audio: '升，撇字头' },
      { question: '请选择正确的偏旁部首组成"国"字', options: ['囗', '氵', '木', '艹'], answer: '囗', audio: '国，口字框' },
      { question: '请选择正确的偏旁部首组成"旗"字', options: ['方', '氵', '木', '艹'], answer: '方', audio: '旗，方字旁' }
    ].sort(() => Math.random() - 0.5), // 随机打乱顺序
    // 拼音练习 - 声母、韵母
    pinyin: [
      // 原有题目
      { question: '请选择正确的声母："b"的读音是？', options: ['玻', '波', '博', '伯'], answer: '玻', audio: '波波的波' },
      { question: '请选择正确的韵母："a"的读音是？', options: ['啊', '阿', '奥', '安'], answer: '啊', audio: '阿阿姨的啊' },
      { question: '请选择正确的声母："p"的读音是？', options: ['坡', '破', '泊', '魄'], answer: '坡', audio: '坡皮的坡' },
      { question: '请选择正确的韵母："o"的读音是？', options: ['哦', '喔', '欧', '偶'], answer: '哦', audio: '哦哦的哦' },
      { question: '请选择正确的声母："m"的读音是？', options: ['摸', '摩', '魔', '莫'], answer: '摸', audio: '摸摸的摸' },
      { question: '请选择正确的韵母："e"的读音是？', options: ['额', '鹅', '鄂', '俄'], answer: '额', audio: '额头的额' },
      { question: '请选择正确的声母："f"的读音是？', options: ['佛', '否', '弗', '福'], answer: '佛', audio: '佛陀的佛' },
      { question: '请选择正确的韵母："i"的读音是？', options: ['衣', '医', '伊', '依'], answer: '衣', audio: '衣服的衣' },
      { question: '请选择正确的声母："d"的读音是？', options: ['得', '德', '地', '弟'], answer: '得', audio: '得得的得' },
      { question: '请选择正确的韵母："u"的读音是？', options: ['乌', '无', '五', '屋'], answer: '乌', audio: '乌鸦的乌' },
      { question: '请选择正确的声母："t"的读音是？', options: ['特', '忒', '替', '梯'], answer: '特', audio: '特别的特' },
      { question: '请选择正确的韵母："ü"的读音是？', options: ['迂', '鱼', '雨', '玉'], answer: '迂', audio: '迂回的迂' },
      { question: '请选择正确的声母："n"的读音是？', options: ['讷', '那', '拿', '内'], answer: '讷', audio: '讷讷的讷' },
      { question: '请选择正确的声母："l"的读音是？', options: ['勒', '乐', '拉', '来'], answer: '勒', audio: '勒紧的勒' },
      { question: '请选择正确的声母："g"的读音是？', options: ['哥', '个', '格', '各'], answer: '哥', audio: '哥哥的哥' },
      { question: '请选择正确的声母："k"的读音是？', options: ['科', '可', '课', '客'], answer: '科', audio: '科学的科' },
      { question: '请选择正确的声母："h"的读音是？', options: ['喝', '合', '河', '和'], answer: '喝', audio: '喝水的喝' },
      { question: '请选择正确的声母："j"的读音是？', options: ['基', '机', '鸡', '积'], answer: '基', audio: '基础的基' },
      { question: '请选择正确的声母："q"的读音是？', options: ['欺', '七', '期', '起'], answer: '欺', audio: '欺负的欺' },
      { question: '请选择正确的声母："x"的读音是？', options: ['西', '希', '习', '喜'], answer: '西', audio: '东西的西' },
      // 新添加题目 - 第二单元·汉语拼音
      { question: '请选择正确的单韵母："a"的读音是？', options: ['啊', '阿', '奥', '安'], answer: '啊', audio: '阿阿姨的啊' },
      { question: '请选择正确的单韵母："o"的读音是？', options: ['哦', '喔', '欧', '偶'], answer: '哦', audio: '哦哦的哦' },
      { question: '请选择正确的单韵母："e"的读音是？', options: ['额', '鹅', '鄂', '俄'], answer: '额', audio: '额头的额' },
      { question: '请选择正确的单韵母："i"的读音是？', options: ['衣', '医', '伊', '依'], answer: '衣', audio: '衣服的衣' },
      { question: '请选择正确的单韵母："u"的读音是？', options: ['乌', '无', '五', '屋'], answer: '乌', audio: '乌鸦的乌' },
      { question: '请选择正确的单韵母："ü"的读音是？', options: ['迂', '鱼', '雨', '玉'], answer: '迂', audio: '迂回的迂' },
      { question: '请选择正确的声母："b"的读音是？', options: ['玻', '波', '博', '伯'], answer: '玻', audio: '波波的波' },
      { question: '请选择正确的声母："p"的读音是？', options: ['坡', '破', '泊', '魄'], answer: '坡', audio: '坡皮的坡' },
      { question: '请选择正确的声母："m"的读音是？', options: ['摸', '摩', '魔', '莫'], answer: '摸', audio: '摸摸的摸' },
      { question: '请选择正确的声母："f"的读音是？', options: ['佛', '否', '弗', '福'], answer: '佛', audio: '佛陀的佛' },
      { question: '请选择正确的声母："d"的读音是？', options: ['得', '德', '地', '弟'], answer: '得', audio: '得得的得' },
      { question: '请选择正确的声母："t"的读音是？', options: ['特', '忒', '替', '梯'], answer: '特', audio: '特别的特' },
      { question: '请选择正确的声母："n"的读音是？', options: ['讷', '那', '拿', '内'], answer: '讷', audio: '讷讷的讷' },
      { question: '请选择正确的声母："l"的读音是？', options: ['勒', '乐', '拉', '来'], answer: '勒', audio: '勒紧的勒' },
      // 新添加题目 - 第三单元·汉语拼音
      { question: '请选择正确的声母："g"的读音是？', options: ['哥', '个', '格', '各'], answer: '哥', audio: '哥哥的哥' },
      { question: '请选择正确的声母："k"的读音是？', options: ['科', '可', '课', '客'], answer: '科', audio: '科学的科' },
      { question: '请选择正确的声母："h"的读音是？', options: ['喝', '合', '河', '和'], answer: '喝', audio: '喝水的喝' },
      { question: '请选择正确的声母："j"的读音是？', options: ['基', '机', '鸡', '积'], answer: '基', audio: '基础的基' },
      { question: '请选择正确的声母："q"的读音是？', options: ['欺', '七', '期', '起'], answer: '欺', audio: '欺负的欺' },
      { question: '请选择正确的声母："x"的读音是？', options: ['西', '希', '习', '喜'], answer: '西', audio: '东西的西' },
      { question: '请选择正确的声母："z"的读音是？', options: ['资', '子', '字', '自'], answer: '资', audio: '资金的资' },
      { question: '请选择正确的声母："c"的读音是？', options: ['刺', '次', '词', '此'], answer: '刺', audio: '刺猬的刺' },
      { question: '请选择正确的声母："s"的读音是？', options: ['思', '丝', '死', '四'], answer: '思', audio: '思考的思' },
      { question: '请选择正确的声母："zh"的读音是？', options: ['知', '之', '至', '治'], answer: '知', audio: '知道的知' },
      { question: '请选择正确的声母："ch"的读音是？', options: ['吃', '尺', '池', '赤'], answer: '吃', audio: '吃饭的吃' },
      { question: '请选择正确的声母："sh"的读音是？', options: ['师', '诗', '时', '市'], answer: '师', audio: '老师的师' },
      { question: '请选择正确的声母："r"的读音是？', options: ['日', '入', '如', '肉'], answer: '日', audio: '日子的日' },
      { question: '请选择正确的声母："y"的读音是？', options: ['衣', '医', '依', '一'], answer: '衣', audio: '衣服的衣' },
      { question: '请选择正确的声母："w"的读音是？', options: ['乌', '无', '五', '吴'], answer: '乌', audio: '乌鸦的乌' },
      // 新添加题目 - 第四单元·汉语拼音
      { question: '请选择正确的复韵母："ai"的读音是？', options: ['爱', '矮', '埃', '碍'], answer: '爱', audio: '爱情的爱' },
      { question: '请选择正确的复韵母："ei"的读音是？', options: ['诶', '黑', '备', '贝'], answer: '诶', audio: '诶呀的诶' },
      { question: '请选择正确的复韵母："ui"的读音是？', options: ['威', '微', '伟', '围'], answer: '威', audio: '威力的威' },
      { question: '请选择正确的复韵母："ao"的读音是？', options: ['凹', '熬', '袄', '傲'], answer: '凹', audio: '凹凸的凹' },
      { question: '请选择正确的复韵母："ou"的读音是？', options: ['欧', '偶', '呕', '藕'], answer: '欧', audio: '欧洲的欧' },
      { question: '请选择正确的复韵母："iu"的读音是？', options: ['优', '游', '友', '有'], answer: '优', audio: '优秀的优' },
      { question: '请选择正确的复韵母："ie"的读音是？', options: ['耶', '叶', '夜', '业'], answer: '耶', audio: '耶稣的耶' },
      { question: '请选择正确的复韵母："üe"的读音是？', options: ['约', '月', '越', '悦'], answer: '约', audio: '约会的约' },
      { question: '请选择正确的复韵母："er"的读音是？', options: ['儿', '而', '耳', '尔'], answer: '儿', audio: '儿子的儿' },
      { question: '请选择正确的鼻韵母："an"的读音是？', options: ['安', '按', '暗', '岸'], answer: '安', audio: '安全的安' },
      { question: '请选择正确的鼻韵母："en"的读音是？', options: ['恩', '摁', '嗯', '蒽'], answer: '恩', audio: '恩情的恩' },
      { question: '请选择正确的鼻韵母："in"的读音是？', options: ['因', '引', '印', '阴'], answer: '因', audio: '因为的因' },
      { question: '请选择正确的鼻韵母："un"的读音是？', options: ['温', '文', '稳', '问'], answer: '温', audio: '温暖的温' },
      { question: '请选择正确的鼻韵母："ün"的读音是？', options: ['晕', '云', '允', '运'], answer: '晕', audio: '晕车的晕' },
      { question: '请选择正确的鼻韵母："ang"的读音是？', options: ['昂', '肮', '盎', '仰'], answer: '昂', audio: '昂首挺胸的昂' },
      { question: '请选择正确的鼻韵母："eng"的读音是？', options: ['鞥', '恒', '哼', '横'], answer: '鞥', audio: '鞥的发音' },
      { question: '请选择正确的鼻韵母："ing"的读音是？', options: ['英', '影', '硬', '应'], answer: '英', audio: '英雄的英' },
      { question: '请选择正确的鼻韵母："ong"的读音是？', options: ['嗡', '翁', '瓮', '蓊'], answer: '嗡', audio: '嗡嗡的嗡' }
    ].sort(() => Math.random() - 0.5), // 随机打乱顺序
    // 词语认读 - 一年级常用词语
    words: [
      // 原有题目
      { question: '请选择正确的词语："天上飞的是什么？"', options: ['小鸟', '小牛', '小鱼', '小马'], answer: '小鸟', audio: '小鸟在天空飞翔' },
      { question: '请选择正确的词语："水里游的是什么？"', options: ['小鱼', '小猫', '小鸡', '小兔'], answer: '小鱼', audio: '小鱼在水里游来游去' },
      { question: '请选择正确的词语："我们住在什么里面？"', options: ['房子', '车子', '盒子', '桌子'], answer: '房子', audio: '我们住在房子里' },
      { question: '请选择正确的词语："我们坐在什么上吃饭？"', options: ['椅子', '桌子', '床', '门'], answer: '桌子', audio: '我们坐在桌子旁吃饭' },
      { question: '请选择正确的词语："我们用什么读书？"', options: ['书本', '铅笔', '橡皮', '尺子'], answer: '书本', audio: '我们用书本读书学习' },
      { question: '请选择正确的词语："我们用什么东西写字？"', options: ['铅笔', '书本', '橡皮', '桌子'], answer: '铅笔', audio: '我们用铅笔写字' },
      { question: '请选择正确的词语："太阳出来会怎么样？"', options: ['天亮了', '天黑了', '下雨了', '下雪了'], answer: '天亮了', audio: '太阳出来了，天亮了' },
      { question: '请选择正确的词语："月亮出来是什么时候？"', options: ['晚上', '早上', '中午', '下午'], answer: '晚上', audio: '月亮出来了，是晚上' },
      { question: '请选择正确的词语："下雨的时候需要什么？"', options: ['雨伞', '太阳帽', '扇子', '墨镜'], answer: '雨伞', audio: '下雨的时候需要打伞' },
      { question: '请选择正确的词语："冬天很冷需要穿什么？"', options: ['棉袄', '短袖', '短裤', '凉鞋'], answer: '棉袄', audio: '冬天很冷，要穿棉袄' },
      { question: '请选择正确的词语："夏天很热需要穿什么？"', options: ['短袖', '棉袄', '羽绒服', '毛衣'], answer: '短袖', audio: '夏天很热，要穿短袖' },
      { question: '请选择正确的词语："我们用什么东西擦嘴？"', options: ['纸巾', '毛巾', '布', '手'], answer: '纸巾', audio: '我们用纸巾擦嘴' },
      { question: '请选择正确的词语："我们用什么东西洗脸？"', options: ['毛巾', '纸巾', '布', '手'], answer: '毛巾', audio: '我们用毛巾洗脸' },
      { question: '请选择正确的词语："我们什么时候吃早餐？"', options: ['早上', '中午', '晚上', '深夜'], answer: '早上', audio: '早上吃早餐' },
      { question: '请选择正确的词语："我们什么时候吃午餐？"', options: ['中午', '早上', '晚上', '深夜'], answer: '中午', audio: '中午吃午餐' },
      { question: '请选择正确的词语："我们什么时候吃晚餐？"', options: ['晚上', '早上', '中午', '深夜'], answer: '晚上', audio: '晚上吃晚餐' },
      { question: '请选择正确的词语："眼睛是用来做什么的？"', options: ['看书', '吃饭', '听歌', '走路'], answer: '看书', audio: '眼睛用来看书' },
      { question: '请选择正确的词语："耳朵是用来做什么的？"', options: ['听声音', '看书', '吃饭', '闻味道'], answer: '听声音', audio: '耳朵用来听声音' },
      { question: '请选择正确的词语："鼻子是用来做什么的？"', options: ['闻味道', '看书', '听歌', '走路'], answer: '闻味道', audio: '鼻子用来闻味道' },
      { question: '请选择正确的词语："嘴巴是用来做什么的？"', options: ['吃饭', '看书', '听歌', '闻味道'], answer: '吃饭', audio: '嘴巴用来吃饭' },
      // 新添加题目 - 第一单元·识字
      { question: '请选择正确的词语："天地人"中的第一个字是？', options: ['天', '地', '人', '山'], answer: '天', audio: '天地人，天是第一个字' },
      { question: '请选择正确的词语："金木水火土"中的第五个字是？', options: ['金', '木', '水', '土'], answer: '土', audio: '金木水火土，土是第五个字' },
      { question: '请选择正确的词语："口耳目手足"中的第三个字是？', options: ['口', '耳', '目', '手'], answer: '目', audio: '口耳目手足，目是第三个字' },
      { question: '请选择正确的词语："日月山川"中的第二个字是？', options: ['日', '月', '山', '川'], answer: '月', audio: '日月山川，月是第二个字' },
      // 新添加题目 - 第五单元·阅读
      { question: '请选择正确的词语："秋天"的天气怎么样？', options: ['炎热', '寒冷', '凉爽', '温暖'], answer: '凉爽', audio: '秋天的天气凉爽' },
      { question: '请选择正确的词语："江南"是指哪里？', options: ['长江以南', '黄河以南', '珠江以南', '黑龙江以南'], answer: '长江以南', audio: '江南指长江以南的地区' },
      { question: '请选择正确的词语："雪地里的小画家"中，谁画竹叶？', options: ['小鸡', '小狗', '小鸭', '小马'], answer: '小鸡', audio: '小鸡画竹叶' },
      { question: '请选择正确的词语："四季"包括哪四个季节？', options: ['春夏秋冬', '春夏秋', '冬春夏', '春秋冬'], answer: '春夏秋冬', audio: '四季包括春夏秋冬' },
      // 新添加题目 - 第六单元·识字
      { question: '请选择正确的词语："对韵歌"中的"云对雨"，下一句是？', options: ['雪对风', '花对树', '鸟对虫', '山对水'], answer: '雪对风', audio: '云对雨，雪对风' },
      { question: '请选择正确的词语："日月明"中，"日月"组成什么字？', options: ['明', '日', '月', '亮'], answer: '明', audio: '日月明' },
      { question: '请选择正确的词语："小书包"里有什么？', options: ['书本', '玩具', '零食', '手机'], answer: '书本', audio: '小书包里有书本' },
      { question: '请选择正确的词语："升国旗"时我们要怎么样？', options: ['敬礼', '说话', '玩耍', '睡觉'], answer: '敬礼', audio: '升国旗时我们要敬礼' },
      // 新添加题目 - 第七单元·阅读
      { question: '请选择正确的词语："小小的船"指的是什么？', options: ['月亮', '太阳', '星星', '飞机'], answer: '月亮', audio: '小小的船指的是月亮' },
      { question: '请选择正确的词语："影子"常常跟着谁？', options: ['我', '你', '他', '她'], answer: '我', audio: '影子常常跟着我' },
      { question: '请选择正确的词语："两件宝"指的是？', options: ['双手和大脑', '眼睛和耳朵', '鼻子和嘴巴', '脚和手'], answer: '双手和大脑', audio: '两件宝指的是双手和大脑' },
      // 新添加题目 - 第八单元·阅读
      { question: '请选择正确的词语："比尾巴"中，谁的尾巴长？', options: ['猴子', '兔子', '松鼠', '公鸡'], answer: '猴子', audio: '猴子的尾巴长' },
      { question: '请选择正确的词语："乌鸦喝水"中，乌鸦用什么方法喝到水？', options: ['放石子', '用吸管', '用翅膀', '找朋友'], answer: '放石子', audio: '乌鸦用放石子的方法喝到水' },
      { question: '请选择正确的词语："雨点儿"从哪里来？', options: ['云里', '地上', '树上', '海里'], answer: '云里', audio: '雨点儿从云里来' },
      // 新添加题目 - 下册内容
      { question: '请选择正确的词语："春夏秋冬"中，哪个是第一个季节？', options: ['春', '夏', '秋', '冬'], answer: '春', audio: '春夏秋冬，春是第一个季节' },
      { question: '请选择正确的词语："姓氏歌"中，"赵钱孙李"的第一个姓是？', options: ['赵', '钱', '孙', '李'], answer: '赵', audio: '赵钱孙李，赵是第一个姓' },
      { question: '请选择正确的词语："小青蛙"是益虫还是害虫？', options: ['益虫', '害虫', '既是益虫又是害虫', '既不是益虫也不是害虫'], answer: '益虫', audio: '小青蛙是益虫' },
      { question: '请选择正确的词语："猜字谜"中，"一口咬掉牛尾巴"是什么字？', options: ['告', '牛', '口', '尾'], answer: '告', audio: '一口咬掉牛尾巴是告字' },
      { question: '请选择正确的词语："静夜思"的作者是谁？', options: ['李白', '杜甫', '白居易', '王维'], answer: '李白', audio: '静夜思的作者是李白' },
      { question: '请选择正确的词语："夜色"中，"我"一开始害怕什么？', options: ['黑夜', '白天', '下雨', '打雷'], answer: '黑夜', audio: '我一开始害怕黑夜' },
      { question: '请选择正确的词语："小壁虎借尾巴"中，小壁虎向谁借尾巴？', options: ['小鱼、老牛、燕子', '小猫、小狗、小鸡', '小鸟、小兔、小熊', '青蛙、乌龟、蛇'], answer: '小鱼、老牛、燕子', audio: '小壁虎向小鱼、老牛、燕子借尾巴' }
    ].sort(() => Math.random() - 0.5) // 随机打乱顺序
  },
  english: {
    // 字母迷宫任务（字母认知）
    maze: [
      {
        question: '哪个字母是 A？',
        options: ['B', 'A', 'C', 'D'],
        answer: 'A',
        audio: 'A'
      },
      {
        question: '哪个字母是 B？',
        options: ['A', 'B', 'C', 'D'],
        answer: 'B',
        audio: 'B'
      },
      {
        question: '哪个字母是 C？',
        options: ['A', 'B', 'C', 'D'],
        answer: 'C',
        audio: 'C'
      },
      {
        question: '哪个字母是 D？',
        options: ['A', 'B', 'C', 'D'],
        answer: 'D',
        audio: 'D'
      },
      {
        question: '哪个字母是 E？',
        options: ['E', 'F', 'G', 'H'],
        answer: 'E',
        audio: 'E'
      },
      {
        question: '哪个字母是 F？',
        options: ['E', 'F', 'G', 'H'],
        answer: 'F',
        audio: 'F'
      },
      {
        question: '哪个字母是 G？',
        options: ['E', 'F', 'G', 'H'],
        answer: 'G',
        audio: 'G'
      },
      {
        question: '哪个字母是 H？',
        options: ['E', 'F', 'G', 'H'],
        answer: 'H',
        audio: 'H'
      },
      {
        question: '哪个字母是 I？',
        options: ['I', 'J', 'K', 'L'],
        answer: 'I',
        audio: 'I'
      },
      {
        question: '哪个字母是 J？',
        options: ['I', 'J', 'K', 'L'],
        answer: 'J',
        audio: 'J'
      },
      {
        question: '哪个字母是 K？',
        options: ['I', 'J', 'K', 'L'],
        answer: 'K',
        audio: 'K'
      },
      {
        question: '哪个字母是 L？',
        options: ['I', 'J', 'K', 'L'],
        answer: 'L',
        audio: 'L'
      },
      {
        question: '哪个字母是 M？',
        options: ['M', 'N', 'O', 'P'],
        answer: 'M',
        audio: 'M'
      },
      {
        question: '哪个字母是 N？',
        options: ['M', 'N', 'O', 'P'],
        answer: 'N',
        audio: 'N'
      },
      {
        question: '哪个字母是 O？',
        options: ['M', 'N', 'O', 'P'],
        answer: 'O',
        audio: 'O'
      },
      {
        question: '哪个字母是 P？',
        options: ['M', 'N', 'O', 'P'],
        answer: 'P',
        audio: 'P'
      },
      {
        question: '哪个字母是 Q？',
        options: ['Q', 'R', 'S', 'T'],
        answer: 'Q',
        audio: 'Q'
      },
      {
        question: '哪个字母是 R？',
        options: ['Q', 'R', 'S', 'T'],
        answer: 'R',
        audio: 'R'
      },
      {
        question: '哪个字母是 S？',
        options: ['Q', 'R', 'S', 'T'],
        answer: 'S',
        audio: 'S'
      },
      {
        question: '哪个字母是 T？',
        options: ['Q', 'R', 'S', 'T'],
        answer: 'T',
        audio: 'T'
      }
    ],
    // 动物喂食任务（跟读单词）
    animal: [
      {
        question: '哪个是猫的英文？',
        options: ['dog', 'cat', 'bird', 'fish'],
        answer: 'cat',
        audio: 'cat'
      },
      {
        question: '哪个是狗的英文？',
        options: ['cat', 'dog', 'bird', 'fish'],
        answer: 'dog',
        audio: 'dog'
      },
      {
        question: '哪个是鸟的英文？',
        options: ['cat', 'dog', 'bird', 'fish'],
        answer: 'bird',
        audio: 'bird'
      },
      {
        question: '哪个是鱼的英文？',
        options: ['cat', 'dog', 'bird', 'fish'],
        answer: 'fish',
        audio: 'fish'
      },
      {
        question: '哪个是老虎的英文？',
        options: ['tiger', 'lion', 'elephant', 'monkey'],
        answer: 'tiger',
        audio: 'tiger'
      },
      {
        question: '哪个是狮子的英文？',
        options: ['tiger', 'lion', 'elephant', 'monkey'],
        answer: 'lion',
        audio: 'lion'
      },
      {
        question: '哪个是大象的英文？',
        options: ['tiger', 'lion', 'elephant', 'monkey'],
        answer: 'elephant',
        audio: 'elephant'
      },
      {
        question: '哪个是猴子的英文？',
        options: ['tiger', 'lion', 'elephant', 'monkey'],
        answer: 'monkey',
        audio: 'monkey'
      },
      {
        question: '哪个是兔子的英文？',
        options: ['rabbit', 'fox', 'wolf', 'bear'],
        answer: 'rabbit',
        audio: 'rabbit'
      },
      {
        question: '哪个是狐狸的英文？',
        options: ['rabbit', 'fox', 'wolf', 'bear'],
        answer: 'fox',
        audio: 'fox'
      },
      {
        question: '哪个是狼的英文？',
        options: ['rabbit', 'fox', 'wolf', 'bear'],
        answer: 'wolf',
        audio: 'wolf'
      },
      {
        question: '哪个是熊的英文？',
        options: ['rabbit', 'fox', 'wolf', 'bear'],
        answer: 'bear',
        audio: 'bear'
      },
      {
        question: '哪个是鸭子的英文？',
        options: ['duck', 'chicken', 'pig', 'cow'],
        answer: 'duck',
        audio: 'duck'
      },
      {
        question: '哪个是鸡的英文？',
        options: ['duck', 'chicken', 'pig', 'cow'],
        answer: 'chicken',
        audio: 'chicken'
      },
      {
        question: '哪个是猪的英文？',
        options: ['duck', 'chicken', 'pig', 'cow'],
        answer: 'pig',
        audio: 'pig'
      },
      {
        question: '哪个是牛的英文？',
        options: ['duck', 'chicken', 'pig', 'cow'],
        answer: 'cow',
        audio: 'cow'
      },
      {
        question: '哪个是羊的英文？',
        options: ['sheep', 'goat', 'horse', 'mouse'],
        answer: 'sheep',
        audio: 'sheep'
      },
      {
        question: '哪个是山羊的英文？',
        options: ['sheep', 'goat', 'horse', 'mouse'],
        answer: 'goat',
        audio: 'goat'
      },
      {
        question: '哪个是马的英文？',
        options: ['sheep', 'goat', 'horse', 'mouse'],
        answer: 'horse',
        audio: 'horse'
      },
      {
        question: '哪个是老鼠的英文？',
        options: ['sheep', 'goat', 'horse', 'mouse'],
        answer: 'mouse',
        audio: 'mouse'
      }
    ],
    // 情景对话任务（对话练习）
    dialogue: [
      {
        question: 'Hello 的意思是？',
        options: ['再见', '你好', '谢谢', '对不起'],
        answer: '你好',
        audio: 'Hello'
      },
      {
        question: 'Goodbye 的意思是？',
        options: ['你好', '再见', '谢谢', '对不起'],
        answer: '再见',
        audio: 'Goodbye'
      },
      {
        question: 'Thank you 的意思是？',
        options: ['你好', '再见', '谢谢', '对不起'],
        answer: '谢谢',
        audio: 'Thank you'
      },
      {
        question: 'Sorry 的意思是？',
        options: ['你好', '再见', '谢谢', '对不起'],
        answer: '对不起',
        audio: 'Sorry'
      },
      {
        question: 'How are you? 的意思是？',
        options: ['你好吗？', '再见', '谢谢', '对不起'],
        answer: '你好吗？',
        audio: 'How are you?'
      },
      // Unit 1: Pets 相关题目
      {
        question: 'Which pet says "woof woof"?',
        options: ['cat', 'dog', 'bird', 'fish'],
        answer: 'dog',
        audio: 'dog'
      },
      {
        question: 'Which pet says "meow meow"?',
        options: ['cat', 'dog', 'bird', 'fish'],
        answer: 'cat',
        audio: 'cat'
      },
      {
        question: 'Which pet can fly?',
        options: ['cat', 'dog', 'bird', 'fish'],
        answer: 'bird',
        audio: 'bird'
      },
      {
        question: 'Which pet lives in water?',
        options: ['cat', 'dog', 'bird', 'fish'],
        answer: 'fish',
        audio: 'fish'
      },
      {
        question: 'Which pet has long ears?',
        options: ['cat', 'dog', 'rabbit', 'fish'],
        answer: 'rabbit',
        audio: 'rabbit'
      },
      // Unit 2: Animals 相关题目
      {
        question: 'Which animal is big and has a trunk?',
        options: ['tiger', 'elephant', 'monkey', 'lion'],
        answer: 'elephant',
        audio: 'elephant'
      },
      {
        question: 'Which animal is the king of the forest?',
        options: ['tiger', 'elephant', 'monkey', 'lion'],
        answer: 'lion',
        audio: 'lion'
      },
      {
        question: 'Which animal has stripes?',
        options: ['tiger', 'elephant', 'monkey', 'lion'],
        answer: 'tiger',
        audio: 'tiger'
      },
      {
        question: 'Which animal likes bananas?',
        options: ['tiger', 'elephant', 'monkey', 'lion'],
        answer: 'monkey',
        audio: 'monkey'
      },
      {
        question: 'Which animal can swim?',
        options: ['tiger', 'fish', 'bird', 'cat'],
        answer: 'fish',
        audio: 'fish'
      },
      // Unit 3: Face 相关题目
      {
        question: 'Which part of the face do we use to see?',
        options: ['nose', 'eyes', 'mouth', 'ears'],
        answer: 'eyes',
        audio: 'eyes'
      },
      {
        question: 'Which part of the face do we use to hear?',
        options: ['nose', 'eyes', 'mouth', 'ears'],
        answer: 'ears',
        audio: 'ears'
      },
      {
        question: 'Which part of the face do we use to smell?',
        options: ['nose', 'eyes', 'mouth', 'ears'],
        answer: 'nose',
        audio: 'nose'
      },
      {
        question: 'Which part of the face do we use to eat?',
        options: ['nose', 'eyes', 'mouth', 'ears'],
        answer: 'mouth',
        audio: 'mouth'
      },
      {
        question: 'Which part of the face is above the mouth?',
        options: ['nose', 'eyes', 'ears', 'hair'],
        answer: 'nose',
        audio: 'nose'
      },
      // Unit 4: Body 相关题目
      {
        question: 'Which body part do we use to walk?',
        options: ['hands', 'feet', 'eyes', 'ears'],
        answer: 'feet',
        audio: 'feet'
      },
      {
        question: 'Which body part do we use to write?',
        options: ['hands', 'feet', 'eyes', 'ears'],
        answer: 'hands',
        audio: 'hands'
      },
      {
        question: 'Which body part is in the middle of our body?',
        options: ['head', 'body', 'legs', 'arms'],
        answer: 'body',
        audio: 'body'
      },
      {
        question: 'Which body part is on top of our body?',
        options: ['head', 'body', 'legs', 'arms'],
        answer: 'head',
        audio: 'head'
      },
      {
        question: 'Which body parts do we use to hug?',
        options: ['hands', 'arms', 'legs', 'feet'],
        answer: 'arms',
        audio: 'arms'
      },
      // Unit 5: My home 相关题目
      {
        question: 'Where do we sleep?',
        options: ['kitchen', 'bedroom', 'living room', 'bathroom'],
        answer: 'bedroom',
        audio: 'bedroom'
      },
      {
        question: 'Where do we cook?',
        options: ['kitchen', 'bedroom', 'living room', 'bathroom'],
        answer: 'kitchen',
        audio: 'kitchen'
      },
      {
        question: 'Where do we watch TV?',
        options: ['kitchen', 'bedroom', 'living room', 'bathroom'],
        answer: 'living room',
        audio: 'living room'
      },
      {
        question: 'Where do we take a shower?',
        options: ['kitchen', 'bedroom', 'living room', 'bathroom'],
        answer: 'bathroom',
        audio: 'bathroom'
      },
      {
        question: 'What do we sit on?',
        options: ['table', 'chair', 'bed', 'sofa'],
        answer: 'chair',
        audio: 'chair'
      },
      // Unit 6: Time 相关题目
      {
        question: 'What time is it when the sun rises?',
        options: ['morning', 'afternoon', 'evening', 'night'],
        answer: 'morning',
        audio: 'morning'
      },
      {
        question: 'What time is it when the sun is high in the sky?',
        options: ['morning', 'afternoon', 'evening', 'night'],
        answer: 'afternoon',
        audio: 'afternoon'
      },
      {
        question: 'What time is it when the sun sets?',
        options: ['morning', 'afternoon', 'evening', 'night'],
        answer: 'evening',
        audio: 'evening'
      },
      {
        question: 'What time is it when its dark outside?',
        options: ['morning', 'afternoon', 'evening', 'night'],
        answer: 'night',
        audio: 'night'
      },
      {
        question: 'When do we have breakfast?',
        options: ['morning', 'afternoon', 'evening', 'night'],
        answer: 'morning',
        audio: 'morning'
      },
      // 更多对话练习题目
      {
        question: 'Nice to meet you 的意思是？',
        options: ['你好', '再见', '很高兴认识你', '谢谢'],
        answer: '很高兴认识你',
        audio: 'Nice to meet you'
      },
      {
        question: 'Whats your name? 的意思是？',
        options: ['你好吗？', '你叫什么名字？', '再见', '谢谢'],
        answer: '你叫什么名字？',
        audio: 'What\'s your name?'
      },
      {
        question: 'Im fine, thank you 的意思是？',
        options: ['我很好，谢谢', '你好', '再见', '对不起'],
        answer: '我很好，谢谢',
        audio: 'I\'m fine, thank you'
      },
      {
        question: 'Good morning 的意思是？',
        options: ['早上好', '下午好', '晚上好', '晚安'],
        answer: '早上好',
        audio: 'Good morning'
      },
      {
        question: 'Good afternoon 的意思是？',
        options: ['早上好', '下午好', '晚上好', '晚安'],
        answer: '下午好',
        audio: 'Good afternoon'
      },
      {
        question: 'Good evening 的意思是？',
        options: ['早上好', '下午好', '晚上好', '晚安'],
        answer: '晚上好',
        audio: 'Good evening'
      },
      {
        question: 'Good night 的意思是？',
        options: ['早上好', '下午好', '晚上好', '晚安'],
        answer: '晚安',
        audio: 'Good night'
      },
      {
        question: 'Yes 的意思是？',
        options: ['是的', '不是', '谢谢', '对不起'],
        answer: '是的',
        audio: 'Yes'
      },
      {
        question: 'No 的意思是？',
        options: ['是的', '不是', '谢谢', '对不起'],
        answer: '不是',
        audio: 'No'
      },
      {
        question: 'Please 的意思是？',
        options: ['请', '谢谢', '对不起', '再见'],
        answer: '请',
        audio: 'Please'
      },
      {
        question: 'I am fine 的意思是？',
        options: ['我很好', '你好', '再见', '谢谢'],
        answer: '我很好',
        audio: 'I am fine'
      },
      {
        question: 'What is your name? 的意思是？',
        options: ['你叫什么名字？', '你好', '再见', '谢谢'],
        answer: '你叫什么名字？',
        audio: 'What is your name?'
      },
      {
        question: 'My name is... 的意思是？',
        options: ['我的名字是...', '你好', '再见', '谢谢'],
        answer: '我的名字是...',
        audio: 'My name is...'
      },
      {
        question: 'Nice to meet you 的意思是？',
        options: ['很高兴认识你', '你好', '再见', '谢谢'],
        answer: '很高兴认识你',
        audio: 'Nice to meet you'
      },
      {
        question: 'Good morning 的意思是？',
        options: ['早上好', '下午好', '晚上好', '再见'],
        answer: '早上好',
        audio: 'Good morning'
      },
      {
        question: 'Good afternoon 的意思是？',
        options: ['早上好', '下午好', '晚上好', '再见'],
        answer: '下午好',
        audio: 'Good afternoon'
      },
      {
        question: 'Good evening 的意思是？',
        options: ['早上好', '下午好', '晚上好', '再见'],
        answer: '晚上好',
        audio: 'Good evening'
      },
      {
        question: 'Yes 的意思是？',
        options: ['是的', '不是', '谢谢', '再见'],
        answer: '是的',
        audio: 'Yes'
      },
      {
        question: 'No 的意思是？',
        options: ['是的', '不是', '谢谢', '再见'],
        answer: '不是',
        audio: 'No'
      },
      {
        question: 'Please 的意思是？',
        options: ['请', '谢谢', '再见', '你好'],
        answer: '请',
        audio: 'Please'
      },
      {
        question: 'Welcome 的意思是？',
        options: ['欢迎', '谢谢', '再见', '你好'],
        answer: '欢迎',
        audio: 'Welcome'
      },
      {
        question: 'Happy birthday 的意思是？',
        options: ['生日快乐', '谢谢', '再见', '你好'],
        answer: '生日快乐',
        audio: 'Happy birthday'
      },
      {
        question: 'See you later 的意思是？',
        options: ['再见', '你好', '谢谢', '对不起'],
        answer: '再见',
        audio: 'See you later'
      },
      {
        question: 'How old are you? 的意思是？',
        options: ['你几岁了？', '你好', '再见', '谢谢'],
        answer: '你几岁了？',
        audio: 'How old are you?'
      },
      {
        question: 'I am six years old 的意思是？',
        options: ['我六岁了', '你好', '再见', '谢谢'],
        answer: '我六岁了',
        audio: 'I am six years old'
      }
    ]
  },
  science: {
    // 植物生长（生物）
    plants: [
      {
        question: '植物生长需要什么？',
        items: [
          { icon: '💧', name: '水', result: '植物吸收了水分，开始生长' },
          { icon: '☀️', name: '阳光', result: '植物进行光合作用，变得更绿了' },
          { icon: '🌱', name: '种子', result: '种子开始发芽了' }
        ],
        answer: '需要水、阳光和种子'
      },
      {
        question: '植物的组成部分有哪些？',
        items: [
          { icon: '🌱', name: '根', result: '根吸收水分和养分' },
          { icon: '🌿', name: '茎', result: '茎运输水分和养分' },
          { icon: '🍃', name: '叶', result: '叶进行光合作用' }
        ],
        answer: '植物的组成部分包括根、茎、叶、花和果实'
      },
      {
        question: '什么是光合作用？',
        items: [
          { icon: '☀️', name: '阳光', result: '阳光是光合作用的能量来源' },
          { icon: '🍃', name: '叶子', result: '叶子是光合作用的场所' },
          { icon: '💧', name: '水', result: '水是光合作用的原料' }
        ],
        answer: '光合作用是植物利用阳光、水和二氧化碳制造养分的过程'
      },
      {
        question: '种子是如何发芽的？',
        items: [
          { icon: '💧', name: '水', result: '水使种子膨胀' },
          { icon: '🌱', name: '种子', result: '种子开始发芽' },
          { icon: '☀️', name: '阳光', result: '阳光帮助幼苗生长' }
        ],
        answer: '种子在适宜的温度、水分和氧气条件下发芽'
      },
      {
        question: '为什么植物需要阳光？',
        items: [
          { icon: '☀️', name: '阳光', result: '阳光提供能量' },
          { icon: '🍃', name: '叶子', result: '叶子利用阳光进行光合作用' },
          { icon: '🌱', name: '植物', result: '植物需要养分生长' }
        ],
        answer: '植物需要阳光进行光合作用，制造生长所需的养分'
      },
      {
        question: '植物的根有什么作用？',
        items: [
          { icon: '🌱', name: '根', result: '根吸收水分和养分' },
          { icon: '💧', name: '水', result: '水是植物生长的必需品' },
          { icon: '🌿', name: '茎', result: '茎将养分运输到植物各部分' }
        ],
        answer: '植物的根可以吸收水分和养分，固定植物'
      },
      {
        question: '植物的茎有什么作用？',
        items: [
          { icon: '🌿', name: '茎', result: '茎运输水分和养分' },
          { icon: '🌱', name: '根', result: '根吸收水分和养分' },
          { icon: '🍃', name: '叶', result: '叶进行光合作用' }
        ],
        answer: '植物的茎可以运输水分和养分，支撑植物'
      },
      {
        question: '植物的叶子有什么作用？',
        items: [
          { icon: '🍃', name: '叶', result: '叶进行光合作用' },
          { icon: '☀️', name: '阳光', result: '阳光是光合作用的能量来源' },
          { icon: '💧', name: '水', result: '水是光合作用的原料' }
        ],
        answer: '植物的叶子可以进行光合作用，制造养分'
      },
      {
        question: '花朵有什么作用？',
        items: [
          { icon: '🌸', name: '花', result: '花可以吸引昆虫传粉' },
          { icon: '🐝', name: '蜜蜂', result: '蜜蜂帮助花朵传粉' },
          { icon: '🌱', name: '种子', result: '花授粉后会结出种子' }
        ],
        answer: '花朵可以吸引昆虫传粉，帮助植物繁殖'
      },
      {
        question: '果实有什么作用？',
        items: [
          { icon: '🍎', name: '果实', result: '果实保护种子' },
          { icon: '🌱', name: '种子', result: '种子是植物的繁殖器官' },
          { icon: '🐦', name: '鸟', result: '动物吃果实帮助传播种子' }
        ],
        answer: '果实可以保护种子，帮助种子传播'
      }
    ],
    // 浮力实验（物理）
    buoyancy: [
      {
        question: '什么物体会浮在水面上？',
        items: [
          { icon: '🪵', name: '木块', result: '木块浮在水面上' },
          { icon: '🪨', name: '石头', result: '石头沉到了水底' },
          { icon: '📦', name: '塑料盒', result: '塑料盒浮在水面上' }
        ],
        answer: '木块和塑料盒会浮在水面上'
      },
      {
        question: '为什么有些物体会浮在水面上？',
        items: [
          { icon: '🌊', name: '水', result: '水有浮力' },
          { icon: '🪵', name: '木块', result: '木块的密度比水小' },
          { icon: '🪨', name: '石头', result: '石头的密度比水大' }
        ],
        answer: '密度比水小的物体会浮在水面上'
      },
      {
        question: '如何让沉下去的物体浮起来？',
        items: [
          { icon: '🪨', name: '石头', result: '石头会沉下去' },
          { icon: '🎈', name: '气球', result: '气球可以提供浮力' },
          { icon: '📦', name: '塑料盒', result: '塑料盒可以增加浮力' }
        ],
        answer: '可以通过增加浮力或减少物体的有效密度让物体浮起来'
      },
      {
        question: '船为什么能浮在水面上？',
        items: [
          { icon: '🚢', name: '船', result: '船的形状特殊' },
          { icon: '🌊', name: '水', result: '水的浮力支撑船' },
          { icon: '⚓', name: '锚', result: '锚可以让船固定' }
        ],
        answer: '船的形状设计使它排开的水量产生足够的浮力支撑自身重量'
      },
      {
        question: '潜水艇如何控制上浮和下沉？',
        items: [
          { icon: '🚤', name: '潜水艇', result: '潜水艇有特殊的设计' },
          { icon: '💧', name: '水', result: '潜水艇可以吸水和排水' },
          { icon: '⚓', name: '锚', result: '锚可以帮助潜水艇固定' }
        ],
        answer: '潜水艇通过调整内部水舱的水量来控制自身密度，从而实现上浮和下沉'
      },
      {
        question: '浮力的方向是怎样的？',
        items: [
          { icon: '⬆️', name: '向上', result: '浮力的方向是向上的' },
          { icon: '⬇️', name: '向下', result: '重力的方向是向下的' },
          { icon: '🌊', name: '水', result: '水产生浮力' }
        ],
        answer: '浮力的方向是向上的'
      },
      {
        question: '浮力的大小与什么有关？',
        items: [
          { icon: '🌊', name: '水', result: '水的密度影响浮力' },
          { icon: '📦', name: '物体', result: '物体排开的水量影响浮力' },
          { icon: '⚖️', name: '重量', result: '物体的重量影响沉浮' }
        ],
        answer: '浮力的大小与物体排开的水量和液体的密度有关'
      },
      {
        question: '为什么铁块会沉在水中？',
        items: [
          { icon: '🔧', name: '铁块', result: '铁块的密度比水大' },
          { icon: '🌊', name: '水', result: '水的密度比铁块小' },
          { icon: '⚖️', name: '重量', result: '铁块的重量大于浮力' }
        ],
        answer: '因为铁块的密度比水大，所以会沉在水中'
      },
      {
        question: '为什么泡沫会浮在水中？',
        items: [
          { icon: '🧽', name: '泡沫', result: '泡沫的密度比水小' },
          { icon: '🌊', name: '水', result: '水的密度比泡沫大' },
          { icon: '⬆️', name: '浮力', result: '浮力大于泡沫的重量' }
        ],
        answer: '因为泡沫的密度比水小，所以会浮在水中'
      },
      {
        question: '盐水的浮力比淡水大吗？',
        items: [
          { icon: '🧂', name: '盐', result: '盐增加了水的密度' },
          { icon: '🌊', name: '水', result: '水的密度影响浮力' },
          { icon: '⬆️', name: '浮力', result: '密度越大，浮力越大' }
        ],
        answer: '是的，盐水的密度比淡水大，所以浮力更大'
      }
    ],
    // 颜色混合（化学）
    colors: [
      {
        question: '红色和蓝色混合会变成什么颜色？',
        items: [
          { icon: '🔴', name: '红色', result: '加入了红色' },
          { icon: '🔵', name: '蓝色', result: '加入了蓝色' },
          { icon: '🟣', name: '紫色', result: '红色和蓝色混合变成了紫色' }
        ],
        answer: '红色和蓝色混合会变成紫色'
      },
      {
        question: '红色和黄色混合会变成什么颜色？',
        items: [
          { icon: '🔴', name: '红色', result: '加入了红色' },
          { icon: '🟡', name: '黄色', result: '加入了黄色' },
          { icon: '🟠', name: '橙色', result: '红色和黄色混合变成了橙色' }
        ],
        answer: '红色和黄色混合会变成橙色'
      },
      {
        question: '蓝色和黄色混合会变成什么颜色？',
        items: [
          { icon: '🔵', name: '蓝色', result: '加入了蓝色' },
          { icon: '🟡', name: '黄色', result: '加入了黄色' },
          { icon: '🟢', name: '绿色', result: '蓝色和黄色混合变成了绿色' }
        ],
        answer: '蓝色和黄色混合会变成绿色'
      },
      {
        question: '什么是三原色？',
        items: [
          { icon: '🔴', name: '红色', result: '红色是三原色之一' },
          { icon: '🔵', name: '蓝色', result: '蓝色是三原色之一' },
          { icon: '🟡', name: '黄色', result: '黄色是三原色之一' }
        ],
        answer: '三原色是红色、蓝色和黄色，它们可以混合出其他所有颜色'
      },
      {
        question: '如何混合出棕色？',
        items: [
          { icon: '🔴', name: '红色', result: '加入了红色' },
          { icon: '🟡', name: '黄色', result: '加入了黄色' },
          { icon: '🔵', name: '蓝色', result: '加入了蓝色' }
        ],
        answer: '混合红色、黄色和蓝色可以得到棕色'
      },
      {
        question: '红色和绿色混合会变成什么颜色？',
        items: [
          { icon: '🔴', name: '红色', result: '加入了红色' },
          { icon: '🟢', name: '绿色', result: '加入了绿色' },
          { icon: '🟤', name: '棕色', result: '红色和绿色混合变成了棕色' }
        ],
        answer: '红色和绿色混合会变成棕色'
      },
      {
        question: '蓝色和绿色混合会变成什么颜色？',
        items: [
          { icon: '🔵', name: '蓝色', result: '加入了蓝色' },
          { icon: '🟢', name: '绿色', result: '加入了绿色' },
          { icon: '🟦', name: '蓝绿色', result: '蓝色和绿色混合变成了蓝绿色' }
        ],
        answer: '蓝色和绿色混合会变成蓝绿色'
      },
      {
        question: '黄色和绿色混合会变成什么颜色？',
        items: [
          { icon: '🟡', name: '黄色', result: '加入了黄色' },
          { icon: '🟢', name: '绿色', result: '加入了绿色' },
          { icon: '💚', name: '黄绿色', result: '黄色和绿色混合变成了黄绿色' }
        ],
        answer: '黄色和绿色混合会变成黄绿色'
      },
      {
        question: '什么是二次色？',
        items: [
          { icon: '🟣', name: '紫色', result: '红色和蓝色混合而成' },
          { icon: '🟠', name: '橙色', result: '红色和黄色混合而成' },
          { icon: '🟢', name: '绿色', result: '蓝色和黄色混合而成' }
        ],
        answer: '二次色是由两种原色混合而成的颜色，包括紫色、橙色和绿色'
      },
      {
        question: '如何混合出粉色？',
        items: [
          { icon: '🔴', name: '红色', result: '加入了红色' },
          { icon: '⚪', name: '白色', result: '加入了白色' },
          { icon: '🌸', name: '粉色', result: '红色和白色混合变成了粉色' }
        ],
        answer: '红色和白色混合可以得到粉色'
      }
    ],
    // 化学实验（化学反应、蒸汽气化等）
    chemistry: [
      {
        question: '水加热后会变成什么？',
        items: [
          { icon: '💧', name: '水', result: '水被加热' },
          { icon: '🔥', name: '热量', result: '热量使水温度升高' },
          { icon: '☁️', name: '水蒸气', result: '水变成了水蒸气' }
        ],
        answer: '水加热后会变成水蒸气'
      },
      {
        question: '小苏打和醋混合会发生什么？',
        items: [
          { icon: '🧂', name: '小苏打', result: '加入了小苏打' },
          { icon: '🍶', name: '醋', result: '加入了醋' },
          { icon: '💨', name: '气泡', result: '产生了大量气泡' }
        ],
        answer: '小苏打和醋混合会产生二氧化碳气泡'
      },
      {
        question: '蜡烛燃烧需要什么？',
        items: [
          { icon: '🕯️', name: '蜡烛', result: '蜡烛是燃烧的燃料' },
          { icon: '🔥', name: '火', result: '火提供初始热量' },
          { icon: '💨', name: '氧气', result: '氧气支持燃烧' }
        ],
        answer: '蜡烛燃烧需要燃料、热量和氧气'
      },
      {
        question: '铁为什么会生锈？',
        items: [
          { icon: '🔧', name: '铁', result: '铁是生锈的物质' },
          { icon: '💧', name: '水', result: '水是生锈的条件之一' },
          { icon: '💨', name: '氧气', result: '氧气是生锈的条件之一' }
        ],
        answer: '铁生锈是因为铁与水和氧气发生了化学反应'
      },
      {
        question: '什么是蒸发？',
        items: [
          { icon: '💧', name: '水', result: '水是蒸发的物质' },
          { icon: '☀️', name: '阳光', result: '阳光提供蒸发所需的能量' },
          { icon: '☁️', name: '水蒸气', result: '水变成了水蒸气' }
        ],
        answer: '蒸发是液体变成气体的过程'
      },
      {
        question: '什么是凝结？',
        items: [
          { icon: '☁️', name: '水蒸气', result: '水蒸气是凝结的物质' },
          { icon: '❄️', name: '冷空气', result: '冷空气使水蒸气冷却' },
          { icon: '💧', name: '水滴', result: '水蒸气变成了水滴' }
        ],
        answer: '凝结是气体变成液体的过程'
      },
      {
        question: '如何使水结冰？',
        items: [
          { icon: '💧', name: '水', result: '水是结冰的物质' },
          { icon: '❄️', name: '低温', result: '低温使水结冰' },
          { icon: '🧊', name: '冰', result: '水变成了冰' }
        ],
        answer: '将水放在低温环境中可以使水结冰'
      },
      {
        question: '如何使冰融化？',
        items: [
          { icon: '🧊', name: '冰', result: '冰是融化的物质' },
          { icon: '🔥', name: '热量', result: '热量使冰融化' },
          { icon: '💧', name: '水', result: '冰变成了水' }
        ],
        answer: '给冰加热可以使冰融化'
      },
      {
        question: '二氧化碳有什么特性？',
        items: [
          { icon: '💨', name: '二氧化碳', result: '二氧化碳是一种气体' },
          { icon: '💧', name: '水', result: '二氧化碳能溶于水' },
          { icon: '🔥', name: '火', result: '二氧化碳能灭火' }
        ],
        answer: '二氧化碳是一种无色无味的气体，能溶于水，不能燃烧也不支持燃烧'
      },
      {
        question: '什么是化学反应？',
        items: [
          { icon: '🧪', name: '反应物', result: '参与反应的物质' },
          { icon: '⚗️', name: '反应过程', result: '物质发生变化' },
          { icon: '🏆', name: '生成物', result: '反应产生的新物质' }
        ],
        answer: '化学反应是物质发生变化，产生新物质的过程'
      }
    ],
    // 物理实验（电池、电路等）
    physics: [
      {
        question: '电池如何工作？',
        items: [
          { icon: '🔋', name: '电池', result: '电池提供电能' },
          { icon: '⚡', name: '电流', result: '电池产生电流' },
          { icon: '💡', name: '灯泡', result: '电流使灯泡发光' }
        ],
        answer: '电池通过化学反应产生电能，提供电流'
      },
      {
        question: '如何制作简单电路？',
        items: [
          { icon: '🔋', name: '电池', result: '电池是电路的电源' },
          { icon: '💡', name: '灯泡', result: '灯泡是电路的用电器' },
          { icon: '🔌', name: '导线', result: '导线连接电路元件' }
        ],
        answer: '用导线将电池和灯泡连接起来，形成闭合电路'
      },
      {
        question: '电池为什么能推动风车？',
        items: [
          { icon: '🔋', name: '电池', result: '电池提供电能' },
          { icon: '⚡', name: '电流', result: '电流通过电机' },
          { icon: '风车', name: '风车', result: '电机带动风车转动' }
        ],
        answer: '电池提供电能，通过电机将电能转化为机械能，推动风车转动'
      },
      {
        question: '什么是磁铁？',
        items: [
          { icon: '🧲', name: '磁铁', result: '磁铁具有磁性' },
          { icon: '🔑', name: '铁制品', result: '磁铁能吸引铁制品' },
          { icon: '🧭', name: '指南针', result: '磁铁能指示方向' }
        ],
        answer: '磁铁是能吸引铁、钴、镍等金属的物体'
      },
      {
        question: '什么是静电？',
        items: [
          { icon: '🧶', name: '毛衣', result: '毛衣摩擦产生静电' },
          { icon: '📄', name: '纸', result: '静电能吸引轻小物体' },
          { icon: '⚡', name: '静电火花', result: '静电放电产生火花' }
        ],
        answer: '静电是物体表面积累的电荷'
      },
      {
        question: '声音是如何传播的？',
        items: [
          { icon: '🔊', name: '声音', result: '声音是一种波' },
          { icon: '💨', name: '空气', result: '声音通过空气传播' },
          { icon: '👂', name: '耳朵', result: '耳朵接收声音' }
        ],
        answer: '声音通过介质（如空气、水、固体）传播'
      },
      {
        question: '什么是光的反射？',
        items: [
          { icon: '☀️', name: '光', result: '光照射到物体表面' },
          { icon: '🪞', name: '镜子', result: '镜子反射光线' },
          { icon: '👁️', name: '眼睛', result: '眼睛看到反射的光' }
        ],
        answer: '光的反射是光线遇到物体表面后改变传播方向的现象'
      },
      {
        question: '什么是光的折射？',
        items: [
          { icon: '☀️', name: '光', result: '光从一种介质进入另一种介质' },
          { icon: '💧', name: '水', result: '光在水中传播方向改变' },
          { icon: '🔍', name: '放大镜', result: '放大镜利用折射原理' }
        ],
        answer: '光的折射是光线从一种介质进入另一种介质时传播方向改变的现象'
      },
      {
        question: '什么是重力？',
        items: [
          { icon: '🌍', name: '地球', result: '地球产生重力' },
          { icon: '🔄', name: '苹果', result: '苹果受到重力下落' },
          { icon: '⬇️', name: '方向', result: '重力方向向下' }
        ],
        answer: '重力是地球对物体的吸引力'
      },
      {
        question: '什么是摩擦力？',
        items: [
          { icon: '👟', name: '鞋子', result: '鞋子与地面接触' },
          { icon: '🔄', name: '运动', result: '运动产生摩擦力' },
          { icon: '🛑', name: '停止', result: '摩擦力使物体停止' }
        ],
        answer: '摩擦力是两个物体接触表面之间相互阻碍运动的力'
      }
    ],
    // 科学小实验
    experiments: [
      {
        question: '如何制作彩虹？',
        items: [
          { icon: '☀️', name: '阳光', result: '阳光是制作彩虹的光源' },
          { icon: '💧', name: '水', result: '水使阳光折射' },
          { icon: '🌈', name: '彩虹', result: '阳光通过水形成彩虹' }
        ],
        answer: '让阳光通过水滴或三棱镜可以制作彩虹'
      },
      {
        question: '如何让鸡蛋浮起来？',
        items: [
          { icon: '🥚', name: '鸡蛋', result: '鸡蛋是实验对象' },
          { icon: '💧', name: '水', result: '水提供浮力' },
          { icon: '🧂', name: '盐', result: '盐增加水的密度' }
        ],
        answer: '在水中加入足够的盐，使水的密度大于鸡蛋的密度，鸡蛋就会浮起来'
      },
      {
        question: '如何制作火山喷发模型？',
        items: [
          { icon: '🌋', name: '火山模型', result: '用泥土或橡皮泥制作火山形状' },
          { icon: '🧂', name: '小苏打', result: '小苏打是反应物' },
          { icon: '🍶', name: '醋', result: '醋与小苏打反应产生气泡' }
        ],
        answer: '在火山模型中加入小苏打和醋，它们反应产生的二氧化碳会模拟火山喷发'
      },
      {
        question: '如何制作简易指南针？',
        items: [
          { icon: '🧲', name: '磁铁', result: '磁铁磁化指针' },
          { icon: '🧷', name: '针', result: '针被磁化后变成指南针' },
          { icon: '💧', name: '水', result: '水使指南针自由转动' }
        ],
        answer: '用磁铁摩擦针使其磁化，然后将针放在水面上，它会指向南北方向'
      },
      {
        question: '如何制作气球动力小车？',
        items: [
          { icon: '🎈', name: '气球', result: '气球储存空气' },
          { icon: '🚗', name: '小车', result: '气球带动小车前进' },
          { icon: '💨', name: '空气', result: '空气从气球中喷出产生推力' }
        ],
        answer: '将气球吹满气，然后松开，气球喷出的空气会推动小车前进'
      },
      {
        question: '如何观察植物的蒸腾作用？',
        items: [
          { icon: '🌱', name: '植物', result: '植物进行蒸腾作用' },
          { icon: '📦', name: '塑料袋', result: '塑料袋收集水蒸气' },
          { icon: '💧', name: '水滴', result: '水蒸气在塑料袋上凝结成水滴' }
        ],
        answer: '用塑料袋套住植物的枝叶，一段时间后塑料袋内壁会出现水滴，这就是植物的蒸腾作用'
      },
      {
        question: '如何制作简易净水器？',
        items: [
          { icon: '💧', name: '脏水', result: '需要净化的水' },
          { icon: '🌿', name: '活性炭', result: '活性炭吸附杂质' },
          { icon: '🧻', name: '滤纸', result: '滤纸过滤固体杂质' }
        ],
        answer: '将脏水通过活性炭和滤纸，可以去除水中的杂质'
      },
      {
        question: '如何观察种子的发芽过程？',
        items: [
          { icon: '🌱', name: '种子', result: '种子是发芽的主体' },
          { icon: '💧', name: '水', result: '水是发芽的必要条件' },
          { icon: '☀️', name: '阳光', result: '阳光帮助种子发芽' }
        ],
        answer: '将种子放在湿润的纸巾上，放在温暖的地方，每天观察种子的变化'
      },
      {
        question: '如何制作简易气压计？',
        items: [
          { icon: '🍶', name: '瓶子', result: '瓶子作为容器' },
          { icon: '📄', name: '气球', result: '气球膜感应气压变化' },
          { icon: '📏', name: '吸管', result: '吸管指示气压变化' }
        ],
        answer: '在瓶子口套上气球膜，在膜上粘一根吸管，当气压变化时，吸管会上下移动'
      },
      {
        question: '如何观察声音的振动？',
        items: [
          { icon: '🔊', name: '声音', result: '声音产生振动' },
          { icon: '🎸', name: '吉他弦', result: '弦的振动产生声音' },
          { icon: '💡', name: '盐粒', result: '盐粒随振动跳动' }
        ],
        answer: '在鼓面或吉他弦上撒一些盐粒，当发出声音时，盐粒会随振动跳动'
      }
    ]
  },
  japanese: {
    // 50音图（平假名）
    hiragana: [
      { question: 'あ的发音是？', options: ['a', 'i', 'u', 'e'], answer: 'a', audio: 'あ' },
      { question: 'い的发音是？', options: ['a', 'i', 'u', 'e'], answer: 'i', audio: 'い' },
      { question: 'う的发音是？', options: ['a', 'i', 'u', 'e'], answer: 'u', audio: 'う' },
      { question: 'え的发音是？', options: ['a', 'i', 'u', 'e'], answer: 'e', audio: 'え' },
      { question: 'お的发音是？', options: ['a', 'i', 'u', 'o'], answer: 'o', audio: 'お' },
      { question: 'か的发音是？', options: ['ka', 'ki', 'ku', 'ke'], answer: 'ka', audio: 'か' },
      { question: 'き的发音是？', options: ['ka', 'ki', 'ku', 'ke'], answer: 'ki', audio: 'き' },
      { question: 'く的发音是？', options: ['ka', 'ki', 'ku', 'ke'], answer: 'ku', audio: 'く' },
      { question: 'け的发音是？', options: ['ka', 'ki', 'ku', 'ke'], answer: 'ke', audio: 'け' },
      { question: 'こ的发音是？', options: ['ka', 'ki', 'ku', 'ko'], answer: 'ko', audio: 'こ' }
    ],
    // 小动物
    animals: [
      { question: '猫的日语是？', options: ['いぬ', 'ねこ', 'うさぎ', 'たぬき'], answer: 'ねこ', audio: 'ねこ' },
      { question: '狗的日语是？', options: ['いぬ', 'ねこ', 'うさぎ', 'たぬき'], answer: 'いぬ', audio: 'いぬ' },
      { question: '兔子的日语是？', options: ['いぬ', 'ねこ', 'うさぎ', 'たぬき'], answer: 'うさぎ', audio: 'うさぎ' },
      { question: '狐狸的日语是？', options: ['いぬ', 'ねこ', 'うさぎ', 'たぬき'], answer: 'たぬき', audio: 'たぬき' },
      { question: '鸟的日语是？', options: ['とり', 'いぬ', 'ねこ', 'うさぎ'], answer: 'とり', audio: 'とり' },
      { question: '鱼的日语是？', options: ['さかな', 'とり', 'いぬ', 'ねこ'], answer: 'さかな', audio: 'さかな' },
      { question: '青蛙的日语是？', options: ['かえる', 'さかな', 'とり', 'いぬ'], answer: 'かえる', audio: 'かえる' }
    ],
    // 水果
    fruits: [
      { question: '苹果的日语是？', options: ['りんご', 'みかん', 'ぶどう', 'いちご'], answer: 'りんご', audio: 'りんご' },
      { question: '橘子的日语是？', options: ['りんご', 'みかん', 'ぶどう', 'いちご'], answer: 'みかん', audio: 'みかん' },
      { question: '葡萄的日语是？', options: ['りんご', 'みかん', 'ぶどう', 'いちご'], answer: 'ぶどう', audio: 'ぶどう' },
      { question: '草莓的日语是？', options: ['りんご', 'みかん', 'ぶどう', 'いちご'], answer: 'いちご', audio: 'いちご' },
      { question: '香蕉的日语是？', options: ['バナナ', 'りんご', 'みかん', 'ぶどう'], answer: 'バナナ', audio: 'バナナ' },
      { question: '西瓜的日语是？', options: ['すいか', 'バナナ', 'りんご', 'みかん'], answer: 'すいか', audio: 'すいか' }
    ],
    // 身体部位
    body: [
      { question: '头的日语是？', options: ['あたま', 'からだ', 'て', 'あし'], answer: 'あたま', audio: 'あたま' },
      { question: '身体的日语是？', options: ['あたま', 'からだ', 'て', 'あし'], answer: 'からだ', audio: 'からだ' },
      { question: '手的日语是？', options: ['あたま', 'からだ', 'て', 'あし'], answer: 'て', audio: 'て' },
      { question: '脚的日语是？', options: ['あたま', 'からだ', 'て', 'あし'], answer: 'あし', audio: 'あし' },
      { question: '眼睛的日语是？', options: ['め', 'はな', 'くち', 'みみ'], answer: 'め', audio: 'め' },
      { question: '鼻子的日语是？', options: ['め', 'はな', 'くち', 'みみ'], answer: 'はな', audio: 'はな' },
      { question: '嘴巴的日语是？', options: ['め', 'はな', 'くち', 'みみ'], answer: 'くち', audio: 'くち' },
      { question: '耳朵的日语是？', options: ['め', 'はな', 'くち', 'みみ'], answer: 'みみ', audio: 'みみ' }
    ],
    // 前后左右
    directions: [
      { question: '前的日语是？', options: ['まえ', 'うしろ', 'みぎ', 'ひだり'], answer: 'まえ', audio: 'まえ' },
      { question: '后的日语是？', options: ['まえ', 'うしろ', 'みぎ', 'ひだり'], answer: 'うしろ', audio: 'うしろ' },
      { question: '右的日语是？', options: ['まえ', 'うしろ', 'みぎ', 'ひだり'], answer: 'みぎ', audio: 'みぎ' },
      { question: '左的日语是？', options: ['まえ', 'うしろ', 'みぎ', 'ひだり'], answer: 'ひだり', audio: 'ひだり' }
    ],
    // 生活上常用的物品
    items: [
      { question: '家的日语是？', options: ['いえ', 'へや', 'たな', 'ふすま'], answer: 'いえ', audio: 'いえ' },
      { question: '房间的日语是？', options: ['いえ', 'へや', 'たな', 'ふすま'], answer: 'へや', audio: 'へや' },
      { question: '桌子的日语是？', options: ['つくえ', 'いす', 'ねこ', 'いぬ'], answer: 'つくえ', audio: 'つくえ' },
      { question: '椅子的日语是？', options: ['つくえ', 'いす', 'ねこ', 'いぬ'], answer: 'いす', audio: 'いす' },
      { question: '书的日语是？', options: ['ほん', 'えんぴつ', 'ペン', 'かぎ'], answer: 'ほん', audio: 'ほん' },
      { question: '铅笔的日语是？', options: ['ほん', 'えんぴつ', 'ペン', 'かぎ'], answer: 'えんぴつ', audio: 'えんぴつ' },
      { question: '钢笔的日语是？', options: ['ほん', 'えんぴつ', 'ペン', 'かぎ'], answer: 'ペン', audio: 'ペン' },
      { question: '钥匙的日语是？', options: ['ほん', 'えんぴつ', 'ペン', 'かぎ'], answer: 'かぎ', audio: 'かぎ' },
      { question: '杯子的日语是？', options: ['コップ', 'ごはん', 'みず', 'おちゃ'], answer: 'コップ', audio: 'コップ' },
      { question: '米饭的日语是？', options: ['コップ', 'ごはん', 'みず', 'おちゃ'], answer: 'ごはん', audio: 'ごはん' },
      { question: '水的日语是？', options: ['コップ', 'ごはん', 'みず', 'おちゃ'], answer: 'みず', audio: 'みず' },
      { question: '茶的日语是？', options: ['コップ', 'ごはん', 'みず', 'おちゃ'], answer: 'おちゃ', audio: 'おちゃ' }
    ],
    // 问候语言
    greetings: [
      { question: '你好的日语是？', options: ['こんにちは', 'さようなら', 'ありがとう', 'ごめんなさい'], answer: 'こんにちは', audio: 'こんにちは' },
      { question: '再见的日语是？', options: ['こんにちは', 'さようなら', 'ありがとう', 'ごめんなさい'], answer: 'さようなら', audio: 'さようなら' },
      { question: '谢谢的日语是？', options: ['こんにちは', 'さようなら', 'ありがとう', 'ごめんなさい'], answer: 'ありがとう', audio: 'ありがとう' },
      { question: '对不起的日语是？', options: ['こんにちは', 'さようなら', 'ありがとう', 'ごめんなさい'], answer: 'ごめんなさい', audio: 'ごめんなさい' },
      { question: '早上好的日语是？', options: ['おはよう', 'こんにちは', 'こんばんは', 'おやすみ'], answer: 'おはよう', audio: 'おはよう' },
      { question: '晚上好的日语是？', options: ['おはよう', 'こんにちは', 'こんばんは', 'おやすみ'], answer: 'こんばんは', audio: 'こんばんは' },
      { question: '晚安的日语是？', options: ['おはよう', 'こんにちは', 'こんばんは', 'おやすみ'], answer: 'おやすみ', audio: 'おやすみ' }
    ]
  }
};

// 播放音频 - 库洛米声音风格
const playAudio = (text: string) => {
  try {
    // 使用Web Speech API进行文本转语音
    const speech = new SpeechSynthesisUtterance(text);
    // 设置语言
    if (/[\u3040-\u309F]/.test(text)) { // 平假名
      speech.lang = 'ja-JP';
    } else if (text.length === 1 || /[\u4e00-\u9fa5]/.test(text)) {
      speech.lang = 'zh-CN';
    } else {
      speech.lang = 'en-US';
    }
    // 设置音量、语速和语调 - 库洛米风格（可爱、活泼、略带淘气）
    speech.volume = 1; // 音量
    speech.rate = 1.0; // 语速适中，更清晰
    speech.pitch = 1.5; // 高语调，更可爱

    // 尝试选择更适合儿童的语音
    const voices = window.speechSynthesis.getVoices();
    if (voices.length > 0) {
      // 优先选择女性或儿童语音
      let selectedVoice = null;
      if (speech.lang === 'zh-CN') {
        // 寻找中文语音
        selectedVoice = voices.find(voice =>
          voice.lang === 'zh-CN' &&
          (voice.name.includes('女') || voice.name.includes('child') || voice.name.includes('Child') || voice.name.includes('少女') || voice.name.includes('Microsoft Yaoyao') || voice.name.includes('Microsoft Huihui'))
        ) || voices.find(voice => voice.lang === 'zh-CN');
      } else if (speech.lang === 'ja-JP') {
        // 寻找日语语音
        selectedVoice = voices.find(voice =>
          voice.lang === 'ja-JP' &&
          (voice.name.includes('Female') || voice.name.includes('child') || voice.name.includes('Child') || voice.name.includes('Microsoft Haruka') || voice.name.includes('Google Japanese'))
        ) || voices.find(voice => voice.lang === 'ja-JP');
      } else {
        // 寻找英文语音
        selectedVoice = voices.find(voice =>
          voice.lang === 'en-US' &&
          (voice.name.includes('Female') || voice.name.includes('child') || voice.name.includes('Child') || voice.name.includes('Microsoft Zira') || voice.name.includes('Google US English') || voice.name.includes('Samantha'))
        ) || voices.find(voice => voice.lang === 'en-US');
      }
      if (selectedVoice) {
        speech.voice = selectedVoice;
      }
    }

    // 播放
    window.speechSynthesis.speak(speech);
  } catch (error) {
    console.error('音频播放失败:', error);
  }
};

// 选择学科
const selectSubject = (subject: string) => {
  console.log('=== 选择学科开始 ===');
  console.log('参数 subject:', subject);
  console.log('currentSubject.value 修改前:', currentSubject.value);
  currentSubject.value = subject;
  currentGame.value = null;
  console.log('currentSubject.value 修改后:', currentSubject.value);
  console.log('currentGame.value:', currentGame.value);
  console.log('=== 选择学科结束 ===');
};

// 开始游戏
const startGame = (subject: string, taskIndex: number) => {
  try {
    console.log('开始游戏函数被调用:', subject, taskIndex);
    console.log('类型检查 - subject:', typeof subject, 'taskIndex:', typeof taskIndex);

    // 检查是否达到每日上限
    if (isDailyLimitReached(subject)) {
      const subjectName = subject === 'math' ? '数学' : subject === 'chinese' ? '语文' : subject === 'english' ? '英语' : subject === 'japanese' ? '日语' : subject === 'geography' ? '地理' : '科学';
      const limit = dailyLimits[subject] || 25;
      alert(`今日${subjectName}题目已达上限（${limit}题），明天再来挑战吧！`);
      return;
    }

    // 根据学科和任务索引选择不同的题目集
    let taskType = '';
    let gameDataSubject: any = null;
    let startIndex = 0;

    switch (subject) {
      case 'math':
        const mathTasks = ['counting', 'shapes', 'calculation'];
        taskType = mathTasks[taskIndex] || 'counting';
        gameDataSubject = gameData.math[taskType];
        startIndex = progress.value.math[taskType] || 0;
        break;
      case 'chinese':
        const chineseTasks = ['radicals', 'pinyin', 'words'];
        taskType = chineseTasks[taskIndex] || 'radicals';
        gameDataSubject = gameData.chinese[taskType];
        startIndex = progress.value.chinese[taskType] || 0;
        break;
      case 'english':
        const englishTasks = ['maze', 'animal', 'dialogue'];
        taskType = englishTasks[taskIndex] || 'maze';
        gameDataSubject = gameData.english[taskType];
        startIndex = progress.value.english[taskType] || 0;
        break;
      case 'science':
        const scienceTasks = ['plants', 'buoyancy', 'colors', 'chemistry', 'physics', 'experiments'];
        taskType = scienceTasks[taskIndex] || 'plants';
        gameDataSubject = gameData.science[taskType];
        startIndex = progress.value.science[taskType] || 0;
        break;
      case 'japanese':
        const japaneseTasks = ['hiragana', 'animals', 'fruits', 'body', 'directions', 'items', 'greetings'];
        taskType = japaneseTasks[taskIndex] || 'hiragana';
        gameDataSubject = gameData.japanese[taskType];
        startIndex = progress.value.japanese[taskType] || 0;
        break;
      case 'geography':
        const geographyTasks = ['map', 'basics', 'northSouth'];
        taskType = geographyTasks[taskIndex] || 'map';
        gameDataSubject = gameData.geography[taskType];
        startIndex = progress.value.geography[taskType] || 0;
        break;
      default:
        gameDataSubject = gameData[subject];
        startIndex = 0;
    }

    console.log('选择的任务类型:', taskType);
    console.log('游戏数据:', gameDataSubject);
    console.log('开始索引:', startIndex);

    console.log('gameDataSubject类型:', typeof gameDataSubject);
    console.log('gameDataSubject是否为数组:', Array.isArray(gameDataSubject));
    console.log('gameDataSubject长度:', gameDataSubject ? gameDataSubject.length : 'N/A');
    
    // 确保gameDataSubject是数组且有数据
    if (gameDataSubject && Array.isArray(gameDataSubject) && gameDataSubject.length > 0) {
      // 确保startIndex不超过题目总数
      const effectiveIndex = Math.min(startIndex, gameDataSubject.length - 1);
      console.log('effectiveIndex:', effectiveIndex);
      
      // 获取题目数据
      const questionData = gameDataSubject[effectiveIndex];
      console.log('questionData:', questionData);
      
      if (!questionData) {
        console.error('题目数据未找到:', subject, taskType, effectiveIndex);
        // 即使没有题目数据，也设置currentGame.value
        currentGame.value = {
          subject,
          taskIndex,
          taskType,
          question: '暂无题目数据',
          options: [],
          parts: [],
          items: [],
          answer: '',
          audio: ''
        };
        return;
      }
      
      let shuffledOptions = null;
      let shuffledAnswer = questionData.answer;
      
      // 如果有选项，随机打乱顺序
      if (questionData.options) {
        // 创建选项的副本并打乱
        shuffledOptions = [...questionData.options];
        for (let i = shuffledOptions.length - 1; i > 0; i--) {
          const j = Math.floor(Math.random() * (i + 1));
          [shuffledOptions[i], shuffledOptions[j]] = [shuffledOptions[j], shuffledOptions[i]];
        }
      }
      
      // 设置currentGame.value
      currentGame.value = {
        subject,
        taskIndex,
        taskType,
        question: questionData.question || '暂无题目',
        options: shuffledOptions || questionData.options || [],
        parts: questionData.parts || [],
        items: questionData.items || [],
        answer: shuffledAnswer || '',
        audio: questionData.audio || ''
      };
      console.log('当前游戏设置:', currentGame.value);
      console.log('currentGame.value设置后:', currentGame.value);
    } else {
      console.error('游戏数据未找到或为空:', subject, taskType, gameDataSubject);
      // 即使没有游戏数据，也设置currentGame.value，避免界面无反应
      currentGame.value = {
        subject,
        taskIndex,
        taskType,
        question: '暂无题目数据',
        options: [],
        parts: [],
        items: [],
        answer: '',
        audio: ''
      };
    }
    currentQuestionIndex.value = startIndex;
    showFeedback.value = false;
    currentAnswer.value = '';
    experimentResult.value = '';
    console.log('函数执行完毕，currentGame.value:', currentGame.value);
  } catch (error) {
    console.error('开始游戏时发生错误:', error);
    alert('开始游戏时发生错误，请重试');
  }
};

// 检查数学答案
const checkAnswer = (option: string) => {
  isCorrect.value = option === currentGame.value.answer;
  const subject = currentGame.value.subject;
  const taskIndex = currentGame.value.taskIndex;
  const task = tasks.value[subject] && tasks.value[subject][taskIndex] ? tasks.value[subject][taskIndex] : { reward: 5 };
  let starsPerQuestion = 1;
  if (subject === 'math' || subject === 'chinese' || subject === 'english') {
    starsPerQuestion = Math.ceil((task.reward || 5) / 20);
  } else if (subject === 'science') {
    starsPerQuestion = Math.ceil((task.reward || 5) / 10);
  }
  feedbackMessage.value = isCorrect.value 
    ? `太棒了！回答正确！正确答案是 ${currentGame.value.answer}。获得 ${starsPerQuestion} 颗星星能量！` 
    : `再试一次，加油！你选择的是 ${option}。`;
  showFeedback.value = true;
  if (isCorrect.value) {
    playAudio(`太棒了，正确答案是 ${currentGame.value.answer}`);
  }
};

// 检查语文答案
const checkChineseAnswer = (option?: string) => {
  // 如果传入了选项，直接检查选项
  if (option !== undefined) {
    isCorrect.value = option === currentGame.value.answer;
    const subject = currentGame.value.subject;
    const taskIndex = currentGame.value.taskIndex;
    const task = tasks.value[subject] && tasks.value[subject][taskIndex] ? tasks.value[subject][taskIndex] : { reward: 5 };
    let starsPerQuestion = 1;
    if (subject === 'math' || subject === 'chinese' || subject === 'english') {
      starsPerQuestion = Math.ceil((task.reward || 5) / 20);
    } else if (subject === 'science') {
      starsPerQuestion = Math.ceil((task.reward || 5) / 10);
    }
    feedbackMessage.value = isCorrect.value 
      ? `太棒了！答对了！正确答案是 ${currentGame.value.answer}。获得 ${starsPerQuestion} 颗星星能量！` 
      : `再试一次，加油！你选择的是 ${option}。`;
    showFeedback.value = true;
    if (isCorrect.value) {
      playAudio(`太棒了，正确答案是 ${currentGame.value.answer}`);
    }
  } else {
    // 否则检查当前答案（拼字游戏）
    isCorrect.value = currentAnswer.value === currentGame.value.answer;
    const subject = currentGame.value.subject;
    const taskIndex = currentGame.value.taskIndex;
    const task = tasks.value[subject] && tasks.value[subject][taskIndex] ? tasks.value[subject][taskIndex] : { reward: 5 };
    let starsPerQuestion = 1;
    if (subject === 'math' || subject === 'chinese' || subject === 'english') {
      starsPerQuestion = Math.ceil((task.reward || 5) / 20);
    } else if (subject === 'science') {
      starsPerQuestion = Math.ceil((task.reward || 5) / 10);
    }
    feedbackMessage.value = isCorrect.value 
      ? `太棒了！拼字正确！正确答案是 ${currentGame.value.answer}。获得 ${starsPerQuestion} 颗星星能量！` 
      : `再试一次，加油！你选择的是 ${currentAnswer.value}。`;
    showFeedback.value = true;
    if (isCorrect.value) {
      playAudio(`太棒了，正确答案是 ${currentGame.value.answer}`);
    }
  }
};

// 检查英语答案
const checkEnglishAnswer = (option: string) => {
  isCorrect.value = option === currentGame.value.answer;
  const subject = currentGame.value.subject;
  const taskIndex = currentGame.value.taskIndex;
  const task = tasks.value[subject] && tasks.value[subject][taskIndex] ? tasks.value[subject][taskIndex] : { reward: 5 };
  let starsPerQuestion = 1;
  if (subject === 'math' || subject === 'chinese' || subject === 'english') {
    starsPerQuestion = Math.ceil((task.reward || 5) / 20);
  } else if (subject === 'science') {
    starsPerQuestion = Math.ceil((task.reward || 5) / 10);
  }
  feedbackMessage.value = isCorrect.value 
    ? `Great! Correct! The correct answer is ${currentGame.value.answer}. 获得 ${starsPerQuestion} 颗星星能量！` 
    : `Try again! You selected ${option}.`;
  showFeedback.value = true;
  if (isCorrect.value) {
    playAudio(`Great! Correct! The correct answer is ${currentGame.value.answer}`);
  }
};

// 检查科学答案
const checkScienceAnswer = () => {
  isCorrect.value = true; // 科学实验只要完成就正确
  const subject = currentGame.value.subject;
  const taskIndex = currentGame.value.taskIndex;
  const task = tasks.value[subject] && tasks.value[subject][taskIndex] ? tasks.value[subject][taskIndex] : { reward: 5 };
  let starsPerQuestion = 1;
  if (subject === 'math' || subject === 'chinese' || subject === 'english' || subject === 'japanese' || subject === 'geography') {
    starsPerQuestion = Math.ceil((task.reward || 5) / 20);
  } else if (subject === 'science') {
    starsPerQuestion = Math.ceil((task.reward || 5) / 10);
  }
  feedbackMessage.value = `实验成功！你真棒！正确答案是 ${currentGame.value.answer}。获得 ${starsPerQuestion} 颗星星能量！`;
  showFeedback.value = true;
  playAudio(`太棒了，正确答案是 ${currentGame.value.answer}`);
};

// 检查日语答案
const checkJapaneseAnswer = (option: string) => {
  isCorrect.value = option === currentGame.value.answer;
  const subject = currentGame.value.subject;
  const taskIndex = currentGame.value.taskIndex;
  const task = tasks.value[subject] && tasks.value[subject][taskIndex] ? tasks.value[subject][taskIndex] : { reward: 5 };
  let starsPerQuestion = 1;
  if (subject === 'math' || subject === 'chinese' || subject === 'english' || subject === 'japanese' || subject === 'geography') {
    starsPerQuestion = Math.ceil((task.reward || 5) / 20);
  } else if (subject === 'science') {
    starsPerQuestion = Math.ceil((task.reward || 5) / 10);
  }
  feedbackMessage.value = isCorrect.value 
    ? `すごい！回答正确！正确答案是 ${currentGame.value.answer}。获得 ${starsPerQuestion} 颗星星能量！` 
    : `もう一度やってみて！你选择的是 ${option}。`;
  showFeedback.value = true;
  if (isCorrect.value) {
    playAudio(`すごい！正确答案是 ${currentGame.value.answer}`);
  }
};

// 检查地理答案
const checkGeographyAnswer = (option: string) => {
  isCorrect.value = option === currentGame.value.answer;
  const subject = currentGame.value.subject;
  const taskIndex = currentGame.value.taskIndex;
  const task = tasks.value[subject] && tasks.value[subject][taskIndex] ? tasks.value[subject][taskIndex] : { reward: 5 };
  let starsPerQuestion = 1;
  if (subject === 'math' || subject === 'chinese' || subject === 'english' || subject === 'japanese' || subject === 'geography') {
    starsPerQuestion = Math.ceil((task.reward || 5) / 20);
  } else if (subject === 'science') {
    starsPerQuestion = Math.ceil((task.reward || 5) / 10);
  }
  feedbackMessage.value = isCorrect.value 
    ? `太棒了！回答正确！正确答案是 ${currentGame.value.answer}。获得 ${starsPerQuestion} 颗星星能量！` 
    : `再试一次，加油！你选择的是 ${option}。`;
  showFeedback.value = true;
  if (isCorrect.value) {
    playAudio(`太棒了，正确答案是 ${currentGame.value.answer}`);
  }
};

// 选择语文偏旁
const selectPart = (part: string) => {
  currentAnswer.value += part;
};

// 使用科学实验物品
const useItem = (item: any) => {
  experimentResult.value = item.result;
};

// 下一题
const nextQuestion = () => {
  // 每完成一题获得星星能量
  const subject = currentGame.value.subject;
  const taskIndex = currentGame.value.taskIndex;
  const task = tasks.value[subject] && tasks.value[subject][taskIndex] ? tasks.value[subject][taskIndex] : { reward: 5 };
  
  // 计算每题的星星奖励（降低获得量）
  let starsPerQuestion = 1;
  if (subject === 'math' || subject === 'chinese' || subject === 'english' || subject === 'japanese' || subject === 'geography') {
    // 降低数学、语文、英语、日语、地理的奖励获得量
    // 总奖励为5，分成20题，每题0.25颗，向上取整为1颗
    starsPerQuestion = Math.ceil((task.reward || 5) / 20); // 20题任务
  } else if (subject === 'science') {
    // 降低科学的奖励获得量
    // 总奖励为8-12，分成10题，每题0.8-1.2颗，向上取整为1颗
    starsPerQuestion = Math.ceil((task.reward || 5) / 15); // 15题任务的计算方式，降低获得量
  }
  
  // 添加星星能量
  starEnergyStore.addEnergy(starsPerQuestion, 'knowledge');
  
  // 更新进度
  const taskType = currentGame.value.taskType;
  
  // 更新学科进度
  switch (subject) {
    case 'math':
      if (progress.value.math[taskType]) {
        progress.value.math[taskType]++;
      }
      break;
    case 'chinese':
      if (progress.value.chinese[taskType]) {
        progress.value.chinese[taskType]++;
      }
      break;
    case 'english':
      if (progress.value.english[taskType]) {
        progress.value.english[taskType]++;
      }
      break;
    case 'science':
      if (progress.value.science[taskType]) {
        progress.value.science[taskType]++;
      }
      break;
    case 'japanese':
      if (progress.value.japanese[taskType]) {
        progress.value.japanese[taskType]++;
      }
      break;
    case 'geography':
      if (progress.value.geography[taskType]) {
        progress.value.geography[taskType]++;
      }
      break;
  }
  
  // 更新每日完成记录
  if (dailyProgress.value.completed[subject] !== undefined) {
    dailyProgress.value.completed[subject]++;
  }
  
  // 保存进度
  saveProgress();
  
  // 检查是否达到每日上限
  if (isDailyLimitReached(subject)) {
    const subjectName = subject === 'math' ? '数学' : subject === 'chinese' ? '语文' : subject === 'english' ? '英语' : subject === 'japanese' ? '日语' : subject === 'geography' ? '地理' : '科学';
    const limit = dailyLimits[subject] || 25;
    alert(`今日${subjectName}题目已达上限（${limit}题），明天再来挑战吧！`);
    currentGame.value = null;
    return;
  }
  
  currentQuestionIndex.value++;
  
  let gameDataSubject: any = null;
  
  switch (subject) {
    case 'math':
      gameDataSubject = gameData.math[taskType];
      break;
    case 'chinese':
      gameDataSubject = gameData.chinese[taskType];
      break;
    case 'english':
      gameDataSubject = gameData.english[taskType];
      break;
    case 'science':
      gameDataSubject = gameData.science[taskType];
      break;
    case 'japanese':
      gameDataSubject = gameData.japanese[taskType];
      break;
    case 'geography':
      gameDataSubject = gameData.geography[taskType];
      break;
    default:
      gameDataSubject = gameData[subject];
  }
  
  if (gameDataSubject && currentQuestionIndex.value < gameDataSubject.length) {
    const questionData = gameDataSubject[currentQuestionIndex.value];
    let shuffledOptions = null;
    let shuffledAnswer = questionData.answer;
    
    // 如果有选项，随机打乱顺序
    if (questionData.options) {
      // 创建选项的副本并打乱
      shuffledOptions = [...questionData.options];
      for (let i = shuffledOptions.length - 1; i > 0; i--) {
        const j = Math.floor(Math.random() * (i + 1));
        [shuffledOptions[i], shuffledOptions[j]] = [shuffledOptions[j], shuffledOptions[i]];
      }
    }
    
    currentGame.value = {
      subject,
      taskIndex,
      taskType,
      question: questionData.question,
      options: shuffledOptions || questionData.options,
      parts: questionData.parts,
      items: questionData.items,
      answer: shuffledAnswer,
      audio: questionData.audio
    };
    showFeedback.value = false;
    currentAnswer.value = '';
    experimentResult.value = '';
  } else {
    // 完成所有题目
    if (task) {
      task.completed = true;
    }
    alert(`任务完成！`);
    currentGame.value = null;
  }
};
</script>

<style scoped>
.knowledge-area {
  padding: 30px 20px;
  min-height: calc(100vh - 200px);
  background: linear-gradient(135deg, #FFF5E6 0%, #FFE4E1 50%, #E0F7FA 100%);
  border-radius: 30px;
  margin: 10px;
  box-shadow: 0 10px 30px rgba(255, 182, 193, 0.3);
  position: relative;
  overflow: hidden;
}

/* 魔法装饰 */
.magic-decor {
  position: absolute;
  font-size: 24px;
  animation: magicFloat 3s ease-in-out infinite;
  pointer-events: none;
  z-index: 1;
}

.star-1 { top: 50px; left: 30px; animation-delay: 0s; }
.star-2 { top: 80px; right: 50px; animation-delay: 0.5s; }
.star-3 { top: 200px; left: 80px; animation-delay: 1s; }
.star-4 { bottom: 150px; right: 100px; animation-delay: 1.5s; }
.star-5 { bottom: 100px; left: 150px; animation-delay: 2s; }

@keyframes magicFloat {
  0%, 100% {
    transform: translateY(0) scale(1) rotate(0deg);
    opacity: 0.8;
  }
  50% {
    transform: translateY(-15px) scale(1.2) rotate(180deg);
    opacity: 1;
  }
}

/* 库洛米向导 */
.guide-character {
  position: absolute;
  top: 20px;
  right: 20px;
  display: flex;
  align-items: flex-end;
  gap: 10px;
  z-index: 10;
}

.guide-avatar {
  font-size: 50px;
  animation: guideBounce 2s ease-in-out infinite;
  filter: drop-shadow(0 4px 8px rgba(147, 112, 219, 0.5));
}

.guide-bubble {
  background: white;
  border-radius: 20px;
  padding: 12px 16px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
  position: relative;
  max-width: 200px;
}

.guide-bubble::before {
  content: '';
  position: absolute;
  bottom: -10px;
  left: 20px;
  border-width: 10px 10px 0;
  border-style: solid;
  border-color: white transparent transparent transparent;
}

.guide-bubble p {
  margin: 0;
  font-size: 13px;
  color: #666;
  line-height: 1.4;
  font-family: var(--cartoon-font);
}

@keyframes guideBounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}

.area-header {
  text-align: center;
  margin-bottom: 40px;
  position: relative;
  z-index: 5;
}

.header-decoration {
  font-size: 28px;
  margin: 10px 0;
  animation: sparkle 2s ease-in-out infinite;
}

.header-decoration:nth-child(2) {
  animation-delay: 1s;
}

@keyframes sparkle {
  0%, 100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.1);
    opacity: 0.8;
  }
}

.area-title {
  font-size: 32px;
  font-weight: 900;
  background: linear-gradient(135deg, #FF69B4, #9370DB, #FF69B4);
  background-size: 200% 200%;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom: 15px;
  font-family: var(--cartoon-font);
  animation: titleGlow 3s linear infinite;
  letter-spacing: 2px;
}

@keyframes titleGlow {
  0% { background-position: 0% 50%; }
  100% { background-position: 200% 50%; }
}

.area-desc {
  font-size: 18px;
  color: #666;
  margin: 0;
  background: white;
  display: inline-block;
  padding: 10px 25px;
  border-radius: 25px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
  font-family: var(--cartoon-font);
}

.subjects {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  margin-bottom: 30px;
  position: relative;
  z-index: 5;
}

.subject-card {
  background: white;
  border-radius: 25px;
  padding: 25px 20px;
  text-align: center;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
  position: relative;
  overflow: hidden;
  border: 3px solid transparent;
}

.subject-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 5px;
  border-radius: 25px 25px 0 0;
  animation: rainbowBorder 3s linear infinite;
}

@keyframes rainbowBorder {
  0% { background: #FF69B4; }
  33% { background: #9370DB; }
  66% { background: #FFA500; }
  100% { background: #FF69B4; }
}

.subject-card:hover {
  transform: translateY(-10px) scale(1.05);
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.2);
}

.subject-card.math::before { background: linear-gradient(90deg, #FF69B4, #FFB6C1); }
.subject-card.chinese::before { background: linear-gradient(90deg, #9370DB, #DDA0DD); }
.subject-card.english::before { background: linear-gradient(90deg, #87CEEB, #4682B4); }
.subject-card.science::before { background: linear-gradient(90deg, #98FB98, #32CD32); }
.subject-card.geography::before { background: linear-gradient(90deg, #FFA500, #FFD700); }

.subject-icon {
  font-size: 50px;
  margin-bottom: 10px;
  display: inline-block;
  animation: iconFloat 2s ease-in-out infinite;
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.2));
}

@keyframes iconFloat {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-8px) rotate(5deg); }
}

.subject-emoji {
  font-size: 40px;
  margin: 10px 0;
  animation: emojiBounce 1.5s ease-in-out infinite;
}

@keyframes emojiBounce {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.2); }
}

.subject-title {
  font-size: 20px;
  font-weight: 900;
  margin-bottom: 8px;
  color: #333;
  font-family: var(--cartoon-font);
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
}

.subject-desc {
  font-size: 14px;
  color: #666;
  margin: 0 0 10px 0;
  font-family: var(--cartoon-font);
}

.subject-reward {
  display: inline-block;
  background: linear-gradient(135deg, #FFD700, #FFA500);
  color: white;
  padding: 6px 15px;
  border-radius: 15px;
  font-size: 13px;
  font-weight: bold;
  font-family: var(--cartoon-font);
  box-shadow: 0 4px 8px rgba(255, 165, 0, 0.3);
  animation: rewardPulse 2s ease-in-out infinite;
}

@keyframes rewardPulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}

/* 移除旧的图标样式，使用新的emoji图标 */
.math-icon,
.chinese-icon,
.english-icon,
.science-icon {
  display: none;
}

.subject-title {
  font-size: 16px;
  font-weight: bold;
  margin-bottom: 5px;
  color: #333;
}

.subject-desc {
  font-size: 14px;
  color: #666;
  margin: 0;
}

.subject-content {
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.95), rgba(255, 182, 193, 0.9));
  border-radius: 25px;
  padding: 25px;
  box-shadow: 0 10px 30px rgba(255, 105, 180, 0.2);
  border: 3px solid rgba(255, 255, 255, 0.6);
  backdrop-filter: blur(10px);
}

.content-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 25px;
  padding-bottom: 15px;
  border-bottom: 3px dashed rgba(255, 105, 180, 0.3);
}

.content-title {
  font-size: 24px;
  font-weight: 900;
  background: linear-gradient(135deg, #FF69B4, #9370DB);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin: 0;
  font-family: var(--cartoon-font);
  animation: titleFloat 2s ease-in-out infinite;
}

@keyframes titleFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}

.back-btn {
  background: linear-gradient(135deg, #FF69B4, #9370DB);
  color: white;
  border: none;
  padding: 10px 20px;
  border-radius: 25px;
  font-size: 16px;
  font-weight: bold;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 4px 10px rgba(255, 105, 180, 0.4);
  font-family: var(--cartoon-font);
  animation: wiggle 2s ease-in-out infinite;
}

.back-btn:hover {
  transform: translateY(-3px) scale(1.05);
  box-shadow: 0 6px 15px rgba(255, 105, 180, 0.5);
}

@keyframes wiggle {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(3deg); }
  75% { transform: rotate(-3deg); }
}

.tasks {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.daily-progress {
  background: linear-gradient(135deg, #FFD166, #06D6A0);
  border-radius: 15px;
  padding: 20px;
  margin-bottom: 20px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

.daily-progress h4 {
  margin: 0 0 15px 0;
  color: #006400;
  font-size: 18px;
  font-weight: bold;
}

.progress-bar {
  width: 100%;
  height: 20px;
  background: rgba(255, 255, 255, 0.5);
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 10px;
}

.progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #FF6B6B, #4ECDC4);
  border-radius: 10px;
  transition: width 0.3s ease;
}

.progress-text {
  font-size: 14px;
  font-weight: bold;
  color: #006400;
  text-align: right;
  display: block;
}

.task-card {
  display: flex;
  align-items: center;
  background: white;
  border-radius: 20px;
  padding: 20px;
  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.1);
  transition: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  border: 3px solid #FFE4E1;
  position: relative;
  overflow: hidden;
}

.task-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, transparent, rgba(255, 105, 180, 0.1));
  opacity: 0;
  transition: opacity 0.3s ease;
  pointer-events: none;
  z-index: 0;
}

.task-card:hover {
  transform: translateX(10px) translateY(-5px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
  border-color: #FF69B4;
}

.task-card:hover::before {
  opacity: 1;
}

.task-icon {
  font-size: 45px;
  margin-right: 20px;
  width: 60px;
  text-align: center;
  animation: taskIconBounce 2s ease-in-out infinite;
  flex-shrink: 0;
  position: relative;
  z-index: 1;
}

@keyframes taskIconBounce {
  0%, 100% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.1) rotate(5deg); }
}

.task-info {
  flex: 1;
  position: relative;
  z-index: 1;
}

.task-title {
  font-size: 18px;
  font-weight: 900;
  color: #333;
  margin-bottom: 8px;
  font-family: var(--cartoon-font);
}

.task-desc {
  font-size: 14px;
  color: #666;
  margin-bottom: 12px;
  line-height: 1.5;
  font-family: var(--cartoon-font);
}

.task-reward {
  display: inline-flex;
  align-items: center;
  background: linear-gradient(135deg, #FFD700, #FFA500);
  color: white;
  padding: 6px 12px;
  border-radius: 15px;
  font-size: 14px;
  font-weight: bold;
  font-family: var(--cartoon-font);
  box-shadow: 0 3px 8px rgba(255, 165, 0, 0.3);
  animation: rewardGlow 2s ease-in-out infinite;
}

@keyframes rewardGlow {
  0%, 100% {
    box-shadow: 0 3px 8px rgba(255, 165, 0, 0.3);
  }
  50% {
    box-shadow: 0 5px 15px rgba(255, 165, 0, 0.5);
  }
}

.reward-icon {
  font-size: 16px;
  margin-right: 5px;
  animation: starSpin 3s linear infinite;
}

@keyframes starSpin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.task-btn {
  background: linear-gradient(135deg, #98FB98, #32CD32);
  color: white;
  border: none;
  padding: 10px 20px;
  border-radius: 20px;
  font-size: 14px;
  font-weight: bold;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 4px 10px rgba(50, 205, 50, 0.4);
  font-family: var(--cartoon-font);
  flex-shrink: 0;
  position: relative;
  z-index: 1;
}

.task-btn:hover {
  transform: scale(1.05);
  box-shadow: 0 6px 15px rgba(50, 205, 50, 0.5);
}

.task-btn:disabled {
  background: #ccc;
  cursor: not-allowed;
}

/* 游戏内容样式 */
.game-content {
  margin-top: 25px;
  padding: 30px;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(255, 182, 193, 0.95));
  border-radius: 25px;
  box-shadow: 0 10px 30px rgba(255, 105, 180, 0.25);
  border: 3px solid rgba(255, 255, 255, 0.6);
  position: relative;
  overflow: hidden;
}

.game-content::before {
  content: '✨';
  position: absolute;
  top: 10px;
  right: 10px;
  font-size: 24px;
  animation: sparkleFloat 2s ease-in-out infinite;
}

@keyframes sparkleFloat {
  0%, 100% {
    transform: translateY(0) rotate(0deg);
    opacity: 0.6;
  }
  50% {
    transform: translateY(-10px) rotate(180deg);
    opacity: 1;
  }
}

.game-question {
  margin-bottom: 25px;
  text-align: center;
}

.question-with-audio {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  margin-bottom: 20px;
}

.game-question h4 {
  font-size: 22px;
  font-weight: 900;
  background: linear-gradient(135deg, #FF69B4, #9370DB);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin: 0;
  font-family: var(--cartoon-font);
  text-shadow: none;
}

.audio-btn {
  background: linear-gradient(135deg, #FFD166, #06D6A0);
  border: none;
  width: 45px;
  height: 45px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
  animation: audioWiggle 2s ease-in-out infinite;
  flex-shrink: 0;
}

.audio-btn:hover {
  transform: scale(1.15) rotate(15deg);
  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.2);
}

@keyframes audioWiggle {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(5deg); }
  75% { transform: rotate(-5deg); }
}

/* 数学游戏样式 */
.answer-options {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 15px;
  margin-bottom: 25px;
}

.option-btn {
  background: linear-gradient(135deg, #FFE4E1, #FFB6C1);
  border: 3px solid #FF69B4;
  padding: 20px;
  border-radius: 20px;
  font-size: 24px;
  font-weight: 900;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: var(--cartoon-font);
  box-shadow: 0 6px 15px rgba(255, 105, 180, 0.3);
  color: #333;
}

.part-audio-btn {
  background: linear-gradient(135deg, #FFD166, #06D6A0);
  border: none;
  width: 35px;
  height: 35px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
  flex-shrink: 0;
}

.part-audio-btn:hover {
  transform: scale(1.1) rotate(15deg);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
}

.item-name-with-audio {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}

.option-btn:hover {
  background: linear-gradient(135deg, #FF69B4, #9370DB);
  color: white;
  transform: translateY(-8px) scale(1.05);
  box-shadow: 0 10px 25px rgba(255, 105, 180, 0.4);
}

/* 游戏反馈 */
.game-feedback {
  text-align: center;
  padding: 20px;
  border-radius: 20px;
  margin-top: 20px;
}

.feedback-message {
  font-size: 20px;
  font-weight: 900;
  margin-bottom: 15px;
  font-family: var(--cartoon-font);
  animation: feedbackBounce 0.5s ease;
}

@keyframes feedbackBounce {
  0% { transform: scale(0.8); opacity: 0; }
  50% { transform: scale(1.1); }
  100% { transform: scale(1); opacity: 1; }
}

.feedback-message.correct {
  background: linear-gradient(135deg, #98FB98, #32CD32);
  color: white;
  padding: 15px 25px;
  border-radius: 20px;
  display: inline-block;
  box-shadow: 0 6px 15px rgba(50, 205, 50, 0.4);
}

.feedback-message.incorrect {
  background: linear-gradient(135deg, #FF6B6B, #EE5A5A);
  color: white;
  padding: 15px 25px;
  border-radius: 20px;
  display: inline-block;
  box-shadow: 0 6px 15px rgba(255, 107, 107, 0.4);
}

.next-btn {
  background: linear-gradient(135deg, #667eea, #764ba2);
  color: white;
  border: none;
  padding: 12px 30px;
  border-radius: 25px;
  font-size: 18px;
  font-weight: bold;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 6px 15px rgba(102, 126, 234, 0.4);
  font-family: var(--cartoon-font);
  animation: pulse 2s ease-in-out infinite;
}

.next-btn:hover {
  transform: translateY(-3px) scale(1.05);
  box-shadow: 0 10px 25px rgba(102, 126, 234, 0.5);
}

@keyframes pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}

/* 语文游戏样式 */
.character-parts {
  display: flex;
  justify-content: center;

  gap: 15px;
  margin-bottom: 20px;
}

.part {
  background: linear-gradient(135deg, #fa709a 0%, #fee140 100%);
  width: 60px;
  height: 60px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.part:hover {
  transform: scale(1.1);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15);
}

.current-answer {
  text-align: center;
  margin-bottom: 20px;
  font-size: 18px;
}

.current-answer .answer {
  font-weight: bold;
  color: #667eea;
  margin-left: 10px;
  font-size: 24px;
}

/* 语文游戏选项按钮样式 */
.chinese-game .word-options {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  justify-content: center;
  margin: 25px 0;
}

.chinese-game .option-btn {
  background: linear-gradient(135deg, #FFE4E1, #FFB6C1);
  border: 3px solid #FF69B4;
  padding: 20px 30px;
  border-radius: 20px;
  font-size: 24px;
  font-weight: 900;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  min-width: 150px;
  box-shadow: 0 6px 15px rgba(255, 105, 180, 0.3);
  color: #333;
}

.chinese-game .option-btn:hover {
  background: linear-gradient(135deg, #FF69B4, #9370DB);
  color: white;
  transform: translateY(-8px) scale(1.05);
  box-shadow: 0 10px 25px rgba(255, 105, 180, 0.5);
}

.chinese-game .part-audio-btn {
  background: #FF69B4;
  color: white;
  border: none;
  border-radius: 50%;
  width: 35px;
  height: 35px;
  font-size: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.3s ease;
  flex-shrink: 0;
}

.chinese-game .part-audio-btn:hover {
  background: #9370DB;
  transform: scale(1.15);
}


/* 音频按钮样式 */
.question-with-audio {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  margin-bottom: 20px;
}

.audio-btn {
  background: linear-gradient(135deg, #FFD166, #06D6A0);
  border: none;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  cursor: pointer;
  transition: var(--transition);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

.audio-btn:hover {
  transform: scale(1.1) rotate(10deg);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2);
}

.part-audio-btn {
  background: rgba(255, 255, 255, 0.8);
  border: 2px solid #FF6B6B;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  cursor: pointer;
  transition: var(--transition);
  margin-top: 5px;
}

.part-audio-btn:hover {
  background: #FF6B6B;
  color: white;
  transform: scale(1.1);
}

.option-audio-btn {
  background: rgba(255, 255, 255, 0.8);
  border: 2px solid #4ECDC4;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  cursor: pointer;
  transition: var(--transition);
  margin-left: 10px;
}

.option-audio-btn:hover {
  background: #4ECDC4;
  color: white;
  transform: scale(1.1);
}

.part {
  position: relative;
}

.option-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
}


/* 英语游戏样式 */
.word-options {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  margin-bottom: 20px;
}

/* 科学游戏样式 */
.experiment-area {
  display: flex;
  justify-content: space-around;
  margin-bottom: 20px;
  flex-wrap: wrap;
  gap: 15px;
}

.experiment-item {
  background: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%);
  padding: 15px;
  border-radius: 10px;
  text-align: center;
  min-width: 100px;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.item-icon {
  font-size: 32px;
  margin-bottom: 10px;
}

.item-name {
  font-size: 14px;
  font-weight: bold;
  margin-bottom: 10px;
  color: #333;
}

.use-btn {
  background: white;
  border: none;
  padding: 8px 16px;
  border-radius: 20px;
  font-size: 12px;
  cursor: pointer;
  transition: all 0.3s ease;
}

.use-btn:hover {
  background: #667eea;
  color: white;
}

.experiment-result {
  background: #f0f8ff;
  padding: 15px;
  border-radius: 10px;
  margin-bottom: 20px;
  text-align: center;
  font-size: 14px;
  color: #333;
}

.result-with-audio {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.result-with-audio p {
  margin: 0;
  flex: 1;
  text-align: left;
}

.result-with-audio .audio-btn {
  flex-shrink: 0;
}

/* 反馈样式 */
.game-feedback {
  margin-top: 20px;
  padding: 15px;
  border-radius: 10px;
  text-align: center;
}

.feedback-message {
  font-size: 16px;
  font-weight: bold;
  margin-bottom: 15px;
  padding: 10px;
  border-radius: 10px;
}

.feedback-message.correct {
  background: #d4edda;
  color: #155724;
  border: 1px solid #c3e6cb;
}

.feedback-message.incorrect {
  background: #f8d7da;
  color: #721c24;
  border: 1px solid #f5c6cb;
}

.next-btn, .submit-btn {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: white;
  border: none;
  padding: 10px 20px;
  border-radius: 20px;
  font-size: 14px;
  cursor: pointer;
  transition: all 0.3s ease;
}

.next-btn:hover, .submit-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

/* 响应式设计 */
@media (max-width: 768px) {
  .answer-options {
    grid-template-columns: 1fr;
  }
  
  .character-parts {
    flex-wrap: wrap;
  }
  
  .experiment-area {
    flex-direction: column;
    align-items: center;
  }
  
  .experiment-item {
    width: 100%;
    max-width: 200px;
  }
}
</style>