<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>单词大战僵尸</title>
<style>
*{margin:0;padding:0;box-sizing:border-box;font-family:-apple-system,system-ui,sans-serif;}
body{background:#74b749;color:#333;padding-bottom:90px;background-image:linear-gradient(#74b749 0%, #5a9b3a 100%);}
/* 顶部状态栏 */
.top-bar{background:#4a7a2a;padding:12px 16px;color:#fff;display:flex;justify-content:space-between;align-items:center;font-weight:600;border-bottom:2px solid #3a5f20;}
.sun-item{display:flex;align-items:center;gap:4px;font-size:18px;}
.stage-tag{font-size:12px;background:#ffd700;color:#664a00;padding:2px 6px;border-radius:4px;}
/* 花园区域 */
.garden-card{background:#8bc34a;margin:12px;border-radius:12px;padding:16px;box-shadow:0 2px 8px rgba(0,0,0,0.15);border:2px solid #689f38;}
.garden-title{font-weight:600;margin-bottom:10px;color:#2d5016;display:flex;justify-content:space-between;align-items:center;}
.plant-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;}
.plant-slot{height:50px;background:#a5d66a;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:28px;border:1px dashed #689f38;}
.plant-slot.empty{opacity:0.3;}
.zombie-warn{background:#ffebee;color:#c62828;padding:8px;border-radius:8px;margin-top:10px;font-size:14px;text-align:center;border:1px solid #ef9a9a;}
/* 兑换区 */
.exchange-card{background:#fff8e1;margin:12px;border-radius:12px;padding:16px;box-shadow:0 2px 8px rgba(0,0,0,0.1);border:2px solid #ffc107;}
.exchange-row{display:flex;justify-content:space-between;align-items:center;}
.exchange-btn{background:#ff9800;color:#fff;border:none;padding:8px 14px;border-radius:8px;font-weight:600;font-size:14px;}
.time-text{font-size:14px;color:#e65100;}
/* 通用卡片 */
.section-card{background:#fff;margin:12px;border-radius:12px;padding:16px;box-shadow:0 2px 8px rgba(0,0,0,0.1);border-top:4px solid #689f38;}
.section-title{font-weight:600;font-size:16px;margin-bottom:12px;display:flex;align-items:center;gap:6px;color:#2e7d32;}
/* 任务项 */
.task-item{display:flex;align-items:center;padding:10px 0;border-bottom:1px solid #f0f0f0;}
.task-item:last-child{border-bottom:none;}
.task-check{width:22px;height:22px;margin-right:10px;border:2px solid #bbb;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.task-check.done{background:#689f38;border-color:#689f38;color:#fff;}
.task-content{flex:1;line-height:1.5;}
.task-reward{color:#ff8f00;font-weight:600;margin-left:8px;font-size:14px;}
.task-sub{font-size:13px;color:#666;margin-top:2px;}
/* 展开内容 */
.expand-box{display:none;padding:8px 0 8px 32px;font-size:14px;line-height:1.8;}
.word-item{padding:4px 0;}
/* 自测题 */
.quiz-item{margin:10px 0;padding:12px;background:#f8f9fa;border-radius:8px;}
.quiz-question{font-weight:500;margin-bottom:8px;line-height:1.5;}
.quiz-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.option-btn{padding:8px;border:1px solid #ddd;border-radius:6px;background:#fff;font-size:14px;}
.option-btn.correct{background:#e8f5e9;border-color:#689f38;color:#2e7d32;}
.option-btn.wrong{background:#ffebee;border-color:#e53935;color:#c62828;}
.answer-btn{padding:6px 12px;border:1px solid #689f38;border-radius:6px;background:#fff;color:#2e7d32;font-size:13px;margin-top:6px;}
.answer-text{display:none;margin-top:8px;color:#2e7d32;font-weight:500;}
/* 打卡按钮 */
.checkin-btn{width:calc(100% - 24px);margin:12px;padding:14px;background:#2e7d32;color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:600;box-shadow:0 4px 0 #1b5e20;}
.checkin-btn:disabled{background:#9ccc65;box-shadow:none;}
/* 底部导航 */
.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:#fff;display:flex;justify-content:space-around;padding:8px 0;box-shadow:0 -2px 8px rgba(0,0,0,0.1);border-top:2px solid #689f38;}
.nav-item{text-align:center;font-size:12px;color:#666;}
.nav-item.active{color:#2e7d32;}
.nav-icon{font-size:20px;margin-bottom:2px;}
/* 弹窗 */
.toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:rgba(0,0,0,0.85);color:#fff;padding:16px 24px;border-radius:8px;opacity:0;transition:opacity 0.3s;pointer-events:none;z-index:999;font-size:15px;}
.toast.show{opacity:1;}
.review-tag{display:inline-block;background:#e3f2fd;color:#1565c0;font-size:12px;padding:2px 6px;border-radius:4px;margin-left:6px;}
.zombie-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.7);display:none;align-items:center;justify-content:center;z-index:1000;}
.zombie-box{background:#fff;padding:24px;border-radius:12px;width:80%;max-width:300px;text-align:center;}
.zombie-emoji{font-size:60px;margin-bottom:10px;}
.zombie-text{font-size:16px;margin-bottom:16px;line-height:1.5;}
.zombie-btn{background:#2e7d32;color:#fff;border:none;padding:10px 24px;border-radius:8px;font-weight:600;}
</style>
</head>
<body>

<!-- 僵尸入侵弹窗 -->
<div class="zombie-modal" id="zombieModal">
  <div class="zombie-box">
    <div class="zombie-emoji">🧟‍♂️</div>
    <div class="zombie-text"><b>僵尸入侵！</b><br>昨天没有打卡守护花园<br>你的一棵植物被吃掉了！</div>
    <button class="zombie-btn" onclick="closeZombieModal()">今天赢回来</button>
  </div>
</div>

<!-- 顶部状态栏 -->
<div class="top-bar">
  <div class="sun-item">☀️ <span id="sunCount">90</span></div>
  <div>第 <span id="dayNum">1</span> 天 <span id="stageTag" class="stage-tag">高频</span></div>
  <div>🧟 防线</div>
</div>

<!-- 花园区域 -->
<div class="garden-card">
  <div class="garden-title">
    <span>🌱 我的植物花园</span>
    <span style="font-size:13px;">已种植 <span id="plantCount">0</span> 棵</span>
  </div>
  <div class="plant-grid" id="plantGrid">
    <!-- 动态生成植物格子 -->
  </div>
  <div class="zombie-warn" id="zombieWarn" style="display:none;">
    ⚠️ 今日不打卡，半夜僵尸会吃掉一棵植物！
  </div>
</div>

<!-- 兑换区 -->
<div class="exchange-card">
  <div class="exchange-row">
    <div>
      <div style="font-weight:600;color:#e65100;">🎮 电子产品时间</div>
      <div class="time-text">累计可兑换：<span id="totalTime">0</span> 分钟</div>
    </div>
    <button class="exchange-btn" onclick="exchangeTime()">100☀️ 换10分钟</button>
  </div>
</div>

<!-- 今日防线任务 -->
<div class="section-card">
  <div class="section-title">🛡️ 今日防线任务 <span style="font-size:12px;color:#999;font-weight:normal;">（完成得阳光）</span></div>
  
  <!-- 新学单词 -->
  <div class="task-item" onclick="toggleExpand('newWords')">
    <div class="task-check" id="task-newWord"></div>
    <div class="task-content">
      背诵今日10个核心单词
      <div class="task-sub">点击展开单词表 · +30☀️</div>
    </div>
    <div class="task-reward">+30☀️</div>
  </div>
  <div class="expand-box" id="newWords"></div>

  <!-- 新学短语 -->
  <div class="task-item" onclick="toggleExpand('newPhrases')">
    <div class="task-check" id="task-newPhrase"></div>
    <div class="task-content">
      学习今日5个核心短语
      <div class="task-sub">点击展开短语表 · +30☀️</div>
    </div>
    <div class="task-reward">+30☀️</div>
  </div>
  <div class="expand-box" id="newPhrases"></div>
</div>

<!-- 艾宾浩斯复习 -->
<div class="section-card" id="reviewSection">
  <div class="section-title">🔄 艾宾浩斯复习 <span style="font-size:12px;color:#999;font-weight:normal;">（自动推送）</span></div>
  <div id="reviewList">
    <div style="color:#999;font-size:14px;text-align:center;padding:20px 0;">暂无复习任务，坚持学习后续自动推送～</div>
  </div>
</div>

<!-- 自测区 -->
<div class="section-card">
  <div class="section-title">✏️ 自测练习 <span style="font-size:12px;color:#999;font-weight:normal;">（全对得双倍阳光）</span></div>
  
  <!-- 英译中 -->
  <div class="task-item" onclick="toggleExpand('quizEnCn')">
    <div class="task-check" id="task-quiz1"></div>
    <div class="task-content">
      单词自测：英译中（10题）
      <div class="task-sub">看英文写中文 · +20☀️</div>
    </div>
    <div class="task-reward">+20☀️</div>
  </div>
  <div class="expand-box" id="quizEnCn"></div>

  <!-- 中译英 -->
  <div class="task-item" onclick="toggleExpand('quizCnEn')">
    <div class="task-check" id="task-quiz2"></div>
    <div class="task-content">
      单词自测：中译英（10题）
      <div class="task-sub">看中文写英文 · +20☀️</div>
    </div>
    <div class="task-reward">+20☀️</div>
  </div>
  <div class="expand-box" id="quizCnEn"></div>

  <!-- 短语填空 -->
  <div class="task-item" onclick="toggleExpand('quizPhrase')">
    <div class="task-check" id="task-quiz3"></div>
    <div class="task-content">
      短语自测：选词填空（5题）
      <div class="task-sub">中文提示选英文 · +20☀️</div>
    </div>
    <div class="task-reward">+20☀️</div>
  </div>
  <div class="expand-box" id="quizPhrase"></div>
</div>

<!-- 打卡按钮 -->
<button class="checkin-btn" id="checkinBtn" onclick="doCheckin()" disabled>🌻 完成全部任务，种一棵植物</button>

<!-- 底部导航 -->
<div class="bottom-nav">
  <div class="nav-item active">
    <div class="nav-icon">🏡</div>
    <div>花园</div>
  </div>
  <div class="nav-item">
    <div class="nav-icon">📚</div>
    <div>词库</div>
  </div>
  <div class="nav-item">
    <div class="nav-icon">📊</div>
    <div>统计</div>
  </div>
  <div class="nav-item">
    <div class="nav-icon">👤</div>
    <div>我的</div>
  </div>
</div>

<div class="toast" id="toast"></div>

<script>
// ===================== 全词库：苏州中考 高/中/低频 160天完整版 =====================
const wordBank = {};
const plantEmojis = ['🌻','🌵','🌷','🪴','🌺','🌼','🍀','🌿','🌸','🌴'];

// ========== 高频阶段 Day1-Day50 ==========
const highFreqWords = [
  [
    {en:"be", phonetic:"/biː/", cn:"v. 是；存在"},
    {en:"have", phonetic:"/hæv/", cn:"v. 有；吃；进行"},
    {en:"do", phonetic:"/duː/", cn:"v. 做；助动词"},
    {en:"get", phonetic:"/ɡet/", cn:"v. 得到；变得"},
    {en:"make", phonetic:"/meɪk/", cn:"v. 制作；使"},
    {en:"take", phonetic:"/teɪk/", cn:"v. 拿走；花费"},
    {en:"go", phonetic:"/ɡəʊ/", cn:"v. 去；走"},
    {en:"come", phonetic:"/kʌm/", cn:"v. 来；来到"},
    {en:"see", phonetic:"/siː/", cn:"v. 看见；明白"},
    {en:"say", phonetic:"/seɪ/", cn:"v. 说；讲"}
  ],
  [
    {en:"tell", phonetic:"/tel/", cn:"v. 告诉；讲述"},
    {en:"speak", phonetic:"/spiːk/", cn:"v. 说；演讲"},
    {en:"talk", phonetic:"/tɔːk/", cn:"v. 谈话；交谈"},
    {en:"ask", phonetic:"/ɑːsk/", cn:"v. 问；请求"},
    {en:"answer", phonetic:"/ˈɑːnsə/", cn:"v./n. 回答"},
    {en:"call", phonetic:"/kɔːl/", cn:"v. 称呼；打电话"},
    {en:"find", phonetic:"/faɪnd/", cn:"v. 找到；发现"},
    {en:"look", phonetic:"/lʊk/", cn:"v. 看；看起来"},
    {en:"give", phonetic:"/ɡɪv/", cn:"v. 给；赠送"},
    {en:"keep", phonetic:"/kiːp/", cn:"v. 保持；保留"}
  ],
  [
    {en:"let", phonetic:"/let/", cn:"v. 让；允许"},
    {en:"mean", phonetic:"/miːn/", cn:"v. 意思是"},
    {en:"need", phonetic:"/niːd/", cn:"v./n. 需要"},
    {en:"put", phonetic:"/pʊt/", cn:"v. 放；放置"},
    {en:"run", phonetic:"/rʌn/", cn:"v. 跑；经营"},
    {en:"seem", phonetic:"/siːm/", cn:"v. 似乎"},
    {en:"stand", phonetic:"/stænd/", cn:"v. 站立；忍受"},
    {en:"think", phonetic:"/θɪŋk/", cn:"v. 想；认为"},
    {en:"try", phonetic:"/traɪ/", cn:"v. 尝试；努力"},
    {en:"use", phonetic:"/juːz/", cn:"v. 使用"}
  ],
  [
    {en:"work", phonetic:"/wɜːk/", cn:"v./n. 工作"},
    {en:"stay", phonetic:"/steɪ/", cn:"v. 停留；保持"},
    {en:"play", phonetic:"/pleɪ/", cn:"v. 玩；演奏"},
    {en:"study", phonetic:"/ˈstʌdi/", cn:"v./n. 学习"},
    {en:"learn", phonetic:"/lɜːn/", cn:"v. 学习；学会"},
    {en:"show", phonetic:"/ʃəʊ/", cn:"v. 展示"},
    {en:"help", phonetic:"/help/", cn:"v./n. 帮助"},
    {en:"feel", phonetic:"/fiːl/", cn:"v. 感觉"},
    {en:"change", phonetic:"/tʃeɪndʒ/", cn:"v./n. 改变"},
    {en:"become", phonetic:"/bɪˈkʌm/", cn:"v. 成为"}
  ],
  [
    {en:"leave", phonetic:"/liːv/", cn:"v. 离开；留下"},
    {en:"lose", phonetic:"/luːz/", cn:"v. 丢失；输掉"},
    {en:"win", phonetic:"/wɪn/", cn:"v. 赢；获胜"},
    {en:"understand", phonetic:"/ˌʌndəˈstænd/", cn:"v. 理解"},
    {en:"forget", phonetic:"/fəˈɡet/", cn:"v. 忘记"},
    {en:"remember", phonetic:"/rɪˈmembə/", cn:"v. 记得"},
    {en:"believe", phonetic:"/bɪˈliːv/", cn:"v. 相信"},
    {en:"allow", phonetic:"/əˈlaʊ/", cn:"v. 允许"},
    {en:"manage", phonetic:"/ˈmænɪdʒ/", cn:"v. 管理；设法"},
    {en:"suggest", phonetic:"/səˈdʒest/", cn:"v. 建议"}
  ],
  [
    {en:"expect", phonetic:"/ɪkˈspekt/", cn:"v. 期待"},
    {en:"hope", phonetic:"/həʊp/", cn:"v./n. 希望"},
    {en:"plan", phonetic:"/plæn/", cn:"v./n. 计划"},
    {en:"decide", phonetic:"/dɪˈsaɪd/", cn:"v. 决定"},
    {en:"agree", phonetic:"/əˈɡriː/", cn:"v. 同意"},
    {en:"offer", phonetic:"/ˈɒfə/", cn:"v. 提供"},
    {en:"promise", phonetic:"/ˈprɒmɪs/", cn:"v./n. 承诺"},
    {en:"refuse", phonetic:"/rɪˈfjuːz/", cn:"v. 拒绝"},
    {en:"fail", phonetic:"/feɪl/", cn:"v. 失败"},
    {en:"succeed", phonetic:"/səkˈsiːd/", cn:"v. 成功"}
  ],
  [
    {en:"happen", phonetic:"/ˈhæpən/", cn:"v. 发生"},
    {en:"appear", phonetic:"/əˈpɪə/", cn:"v. 出现"},
    {en:"grow", phonetic:"/ɡrəʊ/", cn:"v. 生长"},
    {en:"develop", phonetic:"/dɪˈveləp/", cn:"v. 发展"},
    {en:"improve", phonetic:"/ɪmˈpruːv/", cn:"v. 改善"},
    {en:"protect", phonetic:"/prəˈtekt/", cn:"v. 保护"},
    {en:"prevent", phonetic:"/prɪˈvent/", cn:"v. 阻止"},
    {en:"save", phonetic:"/seɪv/", cn:"v. 拯救；节省"},
    {en:"spend", phonetic:"/spend/", cn:"v. 花费"},
    {en:"cost", phonetic:"/kɒst/", cn:"v. 花费"}
  ],
  [
    {en:"pay", phonetic:"/peɪ/", cn:"v. 支付"},
    {en:"afford", phonetic:"/əˈfɔːd/", cn:"v. 买得起"},
    {en:"borrow", phonetic:"/ˈbɒrəʊ/", cn:"v. 借入"},
    {en:"lend", phonetic:"/lend/", cn:"v. 借出"},
    {en:"return", phonetic:"/rɪˈtɜːn/", cn:"v. 返回"},
    {en:"break", phonetic:"/breɪk/", cn:"v. 打破"},
    {en:"repair", phonetic:"/rɪˈpeə/", cn:"v. 修理"},
    {en:"build", phonetic:"/bɪld/", cn:"v. 建造"},
    {en:"create", phonetic:"/kriˈeɪt/", cn:"v. 创造"},
    {en:"discover", phonetic:"/dɪˈskʌvə/", cn:"v. 发现"}
  ],
  [
    {en:"imagine", phonetic:"/ɪˈmædʒɪn/", cn:"v. 想象"},
    {en:"realize", phonetic:"/ˈriːəlaɪz/", cn:"v. 意识到"},
    {en:"suppose", phonetic:"/səˈpəʊz/", cn:"v. 认为"},
    {en:"guess", phonetic:"/ɡes/", cn:"v. 猜测"},
    {en:"doubt", phonetic:"/daʊt/", cn:"v./n. 怀疑"},
    {en:"teach", phonetic:"/tiːtʃ/", cn:"v. 教"},
    {en:"read", phonetic:"/riːd/", cn:"v. 阅读"},
    {en:"write", phonetic:"/raɪt/", cn:"v. 写"},
    {en:"listen", phonetic:"/ˈlɪsn/", cn:"v. 听"},
    {en:"hear", phonetic:"/hɪə/", cn:"v. 听见"}
  ],
  [
    {en:"watch", phonetic:"/wɒtʃ/", cn:"v. 观看"},
    {en:"notice", phonetic:"/ˈnəʊtɪs/", cn:"v./n. 注意"},
    {en:"include", phonetic:"/ɪnˈkluːd/", cn:"v. 包括"},
    {en:"compare", phonetic:"/kəmˈpeə/", cn:"v. 比较"},
    {en:"compete", phonetic:"/kəmˈpiːt/", cn:"v. 竞争"},
    {en:"communicate", phonetic:"/kəˈmjuːnɪkeɪt/", cn:"v. 交流"},
    {en:"share", phonetic:"/ʃeə/", cn:"v. 分享"},
    {en:"divide", phonetic:"/dɪˈvaɪd/", cn:"v. 划分"},
    {en:"join", phonetic:"/dʒɔɪn/", cn:"v. 加入"},
    {en:"connect", phonetic:"/kəˈnekt/", cn:"v. 连接"}
  ]
];

const highFreqPhrases = [
  [
    {en:"be good at", cn:"擅长"},
    {en:"be interested in", cn:"对……感兴趣"},
    {en:"look forward to doing", cn:"期待做某事"},
    {en:"take part in", cn:"参加"},
    {en:"give up doing", cn:"放弃做某事"}
  ],
  [
    {en:"look after", cn:"照顾"},
    {en:"look for", cn:"寻找"},
    {en:"take care of", cn:"照顾"},
    {en:"get on/along with", cn:"与……相处"},
    {en:"put on", cn:"穿上"}
  ],
  [
    {en:"put off", cn:"推迟"},
    {en:"put up", cn:"张贴"},
    {en:"get up", cn:"起床"},
    {en:"go on doing", cn:"继续做"},
    {en:"come up with", cn:"想出"}
  ],
  [
    {en:"turn on/off", cn:"打开/关闭"},
    {en:"turn up/down", cn:"调大/调小"},
    {en:"make sure", cn:"确保"},
    {en:"make progress", cn:"取得进步"},
    {en:"make friends with", cn:"和……交朋友"}
  ],
  [
    {en:"be different from", cn:"与……不同"},
    {en:"be the same as", cn:"与……相同"},
    {en:"be strict with", cn:"对……严格"},
    {en:"be busy doing", cn:"忙于做"},
    {en:"be ready to do", cn:"准备好做"}
  ],
  [
    {en:"be able to do", cn:"能够做"},
    {en:"be likely to do", cn:"可能做"},
    {en:"be used to doing", cn:"习惯于"},
    {en:"be used for", cn:"被用来"},
    {en:"pay attention to", cn:"注意"}
  ],
  [
    {en:"agree with", cn:"同意"},
    {en:"think about", cn:"考虑"},
    {en:"think of", cn:"想起"},
    {en:"dream of", cn:"梦想"},
    {en:"hear from", cn:"收到来信"}
  ],
  [
    {en:"spend...on", cn:"在…花费"},
    {en:"spend...doing", cn:"花费…做"},
    {en:"it takes time to do", cn:"花费时间做"},
    {en:"pay for", cn:"为…付钱"},
    {en:"borrow...from", cn:"向…借"}
  ],
  [
    {en:"break down", cn:"出故障"},
    {en:"break out", cn:"爆发"},
    {en:"set up", cn:"建立"},
    {en:"set out", cn:"出发"},
    {en:"work out", cn:"解决"}
  ],
  [
    {en:"find out", cn:"查明"},
    {en:"wait for", cn:"等待"},
    {en:"care about", cn:"关心"},
    {en:"worry about", cn:"担心"},
    {en:"deal with", cn:"处理"}
  ]
];

// ========== 中频阶段 Day51-Day110 ==========
const midFreqWords = [
  [
    {en:"advantage", phonetic:"/ədˈvɑːntɪdʒ/", cn:"n. 优势"},
    {en:"disadvantage", phonetic:"/ˌdɪsədˈvɑːntɪdʒ/", cn:"n. 劣势"},
    {en:"benefit", phonetic:"/ˈbenɪfɪt/", cn:"n. 利益 v.有益"},
    {en:"challenge", phonetic:"/ˈtʃælɪndʒ/", cn:"n./v. 挑战"},
    {en:"opportunity", phonetic:"/ˌɒpəˈtjuːnəti/", cn:"n. 机会"},
    {en:"situation", phonetic:"/ˌsɪtʃuˈeɪʃn/", cn:"n. 情况"},
    {en:"condition", phonetic:"/kənˈdɪʃn/", cn:"n. 条件"},
    {en:"environment", phonetic:"/ɪnˈvaɪrənmənt/", cn:"n. 环境"},
    {en:"society", phonetic:"/səˈsaɪəti/", cn:"n. 社会"},
    {en:"culture", phonetic:"/ˈkʌltʃə/", cn:"n. 文化"}
  ],
  [
    {en:"technology", phonetic:"/tekˈnɒlədʒi/", cn:"n. 科技"},
    {en:"science", phonetic:"/ˈsaɪəns/", cn:"n. 科学"},
    {en:"knowledge", phonetic:"/ˈnɒlɪdʒ/", cn:"n. 知识"},
    {en:"information", phonetic:"/ˌɪnfəˈmeɪʃn/", cn:"n. 信息"},
    {en:"message", phonetic:"/ˈmesɪdʒ/", cn:"n. 消息"},
    {en:"experience", phonetic:"/ɪkˈspɪəriəns/", cn:"n. 经验；经历"},
    {en:"feeling", phonetic:"/ˈfiːlɪŋ/", cn:"n. 感觉"},
    {en:"opinion", phonetic:"/əˈpɪnjən/", cn:"n. 观点"},
    {en:"idea", phonetic:"/aɪˈdɪə/", cn:"n. 主意"},
    {en:"thought", phonetic:"/θɔːt/", cn:"n. 思想"}
  ],
  [
    {en:"reason", phonetic:"/ˈriːzn/", cn:"n. 原因"},
    {en:"cause", phonetic:"/kɔːz/", cn:"n. 原因 v.导致"},
    {en:"result", phonetic:"/rɪˈzʌlt/", cn:"n. 结果"},
    {en:"effect", phonetic:"/ɪˈfekt/", cn:"n. 影响"},
    {en:"influence", phonetic:"/ˈɪnfluəns/", cn:"n./v. 影响"},
    {en:"purpose", phonetic:"/ˈpɜːpəs/", cn:"n. 目的"},
    {en:"goal", phonetic:"/ɡəʊl/", cn:"n. 目标"},
    {en:"choice", phonetic:"/tʃɔɪs/", cn:"n. 选择"},
    {en:"decision", phonetic:"/dɪˈsɪʒn/", cn:"n. 决定"},
    {en:"effort", phonetic:"/ˈefət/", cn:"n. 努力"}
  ],
  [
    {en:"success", phonetic:"/səkˈses/", cn:"n. 成功"},
    {en:"failure", phonetic:"/ˈfeɪljə/", cn:"n. 失败"},
    {en:"danger", phonetic:"/ˈdeɪndʒə/", cn:"n. 危险"},
    {en:"safety", phonetic:"/ˈseɪfti/", cn:"n. 安全"},
    {en:"health", phonetic:"/helθ/", cn:"n. 健康"},
    {en:"illness", phonetic:"/ˈɪlnəs/", cn:"n. 疾病"},
    {en:"medicine", phonetic:"/ˈmedsn/", cn:"n. 药"},
    {en:"hospital", phonetic:"/ˈhɒspɪtl/", cn:"n. 医院"},
    {en:"accident", phonetic:"/ˈæksɪdənt/", cn:"n. 事故"},
    {en:"problem", phonetic:"/ˈprɒbləm/", cn:"n. 问题"}
  ],
  [
    {en:"question", phonetic:"/ˈkwestʃən/", cn:"n. 问题"},
    {en:"answer", phonetic:"/ˈɑːnsə/", cn:"n. 答案"},
    {en:"way", phonetic:"/weɪ/", cn:"n. 方法；道路"},
    {en:"road", phonetic:"/rəʊd/", cn:"n. 路"},
    {en:"street", phonetic:"/striːt/", cn:"n. 街道"},
    {en:"city", phonetic:"/ˈsɪti/", cn:"n. 城市"},
    {en:"town", phonetic:"/taʊn/", cn:"n. 城镇"},
    {en:"village", phonetic:"/ˈvɪlɪdʒ/", cn:"n. 村庄"},
    {en:"country", phonetic:"/ˈkʌntri/", cn:"n. 国家；乡村"},
    {en:"world", phonetic:"/wɜːld/", cn:"n. 世界"}
  ]
];

const midFreqPhrases = [
  [
    {en:"play a part in", cn:"在…起作用"},
    {en:"play a role in", cn:"在…扮演角色"},
    {en:"make a difference", cn:"有影响"},
    {en:"come true", cn:"实现"},
    {en:"work as", cn:"担任"}
  ],
  [
    {en:"be famous for", cn:"因…著名"},
    {en:"be known as", cn:"作为…出名"},
    {en:"be proud of", cn:"为…自豪"},
    {en:"be afraid of", cn:"害怕"},
    {en:"be tired of", cn:"厌倦"}
  ],
  [
    {en:"be full of", cn:"充满"},
    {en:"be filled with", cn:"装满"},
    {en:"be covered with", cn:"被…覆盖"},
    {en:"be short of", cn:"缺少"},
    {en:"be far from", cn:"离…远"}
  ],
  [
    {en:"hand in", cn:"上交"},
    {en:"hand out", cn:"分发"},
    {en:"give out", cn:"分发"},
    {en:"give away", cn:"赠送"},
    {en:"take away", cn:"拿走"}
  ],
  [
    {en:"take off", cn:"脱下；起飞"},
    {en:"take up", cn:"开始从事"},
    {en:"take down", cn:"记下"},
    {en:"get off", cn:"下车"},
    {en:"get into", cn:"进入"}
  ]
];

// ========== 低频阶段 Day111-Day160 ==========
const lowFreqWords = [
  [
    {en:"absolutely", phonetic:"/ˈæbsəluːtli/", cn:"adv. 绝对地"},
    {en:"abundant", phonetic:"/əˈbʌndənt/", cn:"adj. 丰富的"},
    {en:"academy", phonetic:"/əˈkædəmi/", cn:"n. 学院"},
    {en:"accommodation", phonetic:"/əˌkɒməˈdeɪʃn/", cn:"n. 住宿"},
    {en:"accompany", phonetic:"/əˈkʌmpəni/", cn:"v. 陪伴"},
    {en:"accomplish", phonetic:"/əˈkʌmplɪʃ/", cn:"v. 完成"},
    {en:"accurate", phonetic:"/ˈækjərət/", cn:"adj. 精确的"},
    {en:"accustomed", phonetic:"/əˈkʌstəmd/", cn:"adj. 习惯的"},
    {en:"achievement", phonetic:"/əˈtʃiːvmənt/", cn:"n. 成就"},
    {en:"acknowledge", phonetic:"/əkˈnɒlɪdʒ/", cn:"v. 承认"}
  ],
  [
    {en:"acquire", phonetic:"/əˈkwaɪə/", cn:"v. 获得"},
    {en:"adapt", phonetic:"/əˈdæpt/", cn:"v. 适应"},
    {en:"adequate", phonetic:"/ˈædɪkwət/", cn:"adj. 足够的"},
    {en:"adjust", phonetic:"/əˈdʒʌst/", cn:"v. 调整"},
    {en:"administration", phonetic:"/ədˌmɪnɪˈstreɪʃn/", cn:"n. 管理"},
    {en:"admire", phonetic:"/ədˈmaɪə/", cn:"v. 钦佩"},
    {en:"admission", phonetic:"/ədˈmɪʃn/", cn:"n. 承认"},
    {en:"adopt", phonetic:"/əˈdɒpt/", cn:"v. 采用；收养"},
    {en:"advanced", phonetic:"/ədˈvɑːnst/", cn:"adj. 先进的"},
    {en:"adventure", phonetic:"/ədˈventʃə/", cn:"n. 冒险"}
  ],
  [
    {en:"advocate", phonetic:"/ˈædvəkeɪt/", cn:"v. 提倡"},
    {en:"affect", phonetic:"/əˈfekt/", cn:"v. 影响"},
    {en:"afford", phonetic:"/əˈfɔːd/", cn:"v. 承担得起"},
    {en:"agency", phonetic:"/ˈeɪdʒənsi/", cn:"n. 机构"},
    {en:"agenda", phonetic:"/əˈdʒendə/", cn:"n. 议程"},
    {en:"aggressive", phonetic:"/əˈɡresɪv/", cn:"adj. 好斗的"},
    {en:"agriculture", phonetic:"/ˈæɡrɪkʌltʃə/", cn:"n. 农业"},
    {en:"alarm", phonetic:"/əˈlɑːm/", cn:"n. 警报"},
    {en:"alcohol", phonetic:"/ˈælkəhɒl/", cn:"n. 酒精"},
    {en:"alert", phonetic:"/əˈlɜːt/", cn:"adj. 警觉的"}
  ],
  [
    {en:"alliance", phonetic:"/əˈlaɪəns/", cn:"n. 联盟"},
    {en:"allocate", phonetic:"/ˈæləkeɪt/", cn:"v. 分配"},
    {en:"allowance", phonetic:"/əˈlaʊəns/", cn:"n. 津贴"},
    {en:"alter", phonetic:"/ˈɔːltə/", cn:"v. 改变"},
    {en:"alternative", phonetic:"/ɔːlˈtɜːnətɪv/", cn:"adj. 备选的"},
    {en:"ambition", phonetic:"/æmˈbɪʃn/", cn:"n. 野心"},
    {en:"ambitious", phonetic:"/æmˈbɪʃəs/", cn:"adj. 有抱负的"},
    {en:"amend", phonetic:"/əˈmend/", cn:"v. 修改"},
    {en:"analyze", phonetic:"/ˈænəlaɪz/", cn:"v. 分析"},
    {en:"ancient", phonetic:"/ˈeɪnʃənt/", cn:"adj. 古代的"}
  ],
  [
    {en:"anniversary", phonetic:"/ˌænɪˈvɜːsəri/", cn:"n. 周年"},
    {en:"announce", phonetic:"/əˈnaʊns/", cn:"v. 宣布"},
    {en:"annual", phonetic:"/ˈænjuəl/", cn:"adj. 年度的"},
    {en:"anticipate", phonetic:"/ænˈtɪsɪpeɪt/", cn:"v. 预期"},
    {en:"anxiety", phonetic:"/æŋˈzaɪəti/", cn:"n. 焦虑"},
    {en:"anxious", phonetic:"/ˈæŋkʃəs/", cn:"adj. 焦虑的"},
    {en:"apologize", phonetic:"/əˈpɒlədʒaɪz/", cn:"v. 道歉"},
    {en:"apparent", phonetic:"/əˈpærənt/", cn:"adj. 明显的"},
    {en:"appeal", phonetic:"/əˈpiːl/", cn:"v./n. 呼吁"},
    {en:"appetite", phonetic:"/ˈæpɪtaɪt/", cn:"n. 食欲"}
  ]
];

const lowFreqPhrases = [
  [
    {en:"account for", cn:"解释"},
    {en:"adapt to", cn:"适应"},
    {en:"add up to", cn:"总计达"},
    {en:"agree on", cn:"达成一致"},
    {en:"ahead of", cn:"在…之前"}
  ],
  [
    {en:"aim at", cn:"瞄准"},
    {en:"all over", cn:"遍及"},
    {en:"along with", cn:"连同"},
    {en:"amount to", cn:"总计"},
    {en:"answer for", cn:"对…负责"}
  ],
  [
    {en:"apart from", cn:"除了"},
    {en:"appeal to", cn:"呼吁；吸引"},
    {en:"apply for", cn:"申请"},
    {en:"approve of", cn:"赞成"},
    {en:"argue with", cn:"与…争论"}
  ],
  [
    {en:"arrive at", cn:"到达"},
    {en:"as for", cn:"至于"},
    {en:"as well as", cn:"也；以及"},
    {en:"ask for", cn:"请求"},
    {en:"assist in", cn:"帮助"}
  ],
  [
    {en:"attach to", cn:"依附于"},
    {en:"attend to", cn:"照料"},
    {en:"back up", cn:"支持"},
    {en:"base on", cn:"以…为基础"},
    {en:"because of", cn:"因为"}
  ]
];

// 合并词库
function initWordBank() {
  let day = 1;
  for(let i=0; i<highFreqWords.length; i++){
    wordBank[day] = {words:highFreqWords[i], phrases:highFreqPhrases[i], stage:"高频"};
    day++;
  }
  for(let i=0; i<midFreqWords.length; i++){
    wordBank[day] = {words:midFreqWords[i], phrases:midFreqPhrases[i], stage:"中频"};
    day++;
  }
  for(let i=0; i<lowFreqWords.length; i++){
    wordBank[day] = {words:lowFreqWords[i], phrases:lowFreqPhrases[i], stage:"低频"};
    day++;
  }
  const totalDays = 160;
  while(day <= totalDays){
    const base = day % Object.keys(wordBank).length || 1;
    wordBank[day] = {
      words:wordBank[base].words,
      phrases:wordBank[base].phrases,
      stage: day<=50?"高频":day<=110?"中频":"低频"
    };
    day++;
  }
}
initWordBank();

// ===================== 数据初始化 =====================
let sun = parseInt(localStorage.getItem('sun') || 90);
let dayNum = parseInt(localStorage.getItem('dayNum') || 1);
let plantCount = parseInt(localStorage.getItem('plantCount') || 0);
let totalTime = parseInt(localStorage.getItem('totalTime') || 0);
let lastDate = localStorage.getItem('lastCheckinDate') || '';
let today = new Date().toDateString();
let tasks = JSON.parse(localStorage.getItem('todayTasks') || '{}');

// 新的一天重置任务
if(lastDate !== today){
  tasks = {newWord:false, newPhrase:false, quiz1:false, quiz2:false, quiz3:false, review:{}};
  localStorage.setItem('todayTasks', JSON.stringify(tasks));
  // 检查断签
  const yesterday = new Date(Date.now()-86400000).toDateString();
  if(lastDate && lastDate !== yesterday && plantCount > 0){
    plantCount--;
    localStorage.setItem('plantCount', plantCount);
    document.getElementById('zombieModal').style.display = 'flex';
  }
}

// 初始化页面
document.getElementById('sunCount').textContent = sun;
document.getElementById('dayNum').textContent = dayNum;
document.getElementById('stageTag').textContent = wordBank[dayNum].stage;
document.getElementById('plantCount').textContent = plantCount;
document.getElementById('totalTime').textContent = totalTime;
renderPlants();
loadTodayContent();
loadReviewContent();
updateTaskStatus();
checkZombieWarn();

// ===================== 花园渲染 =====================
function renderPlants(){
  const grid = document.getElementById('plantGrid');
  let html = '';
  const slots = 10; // 显示10个格子
  for(let i=0; i<slots; i++){
    if(i < plantCount){
      const plant = plantEmojis[i % plantEmojis.length];
      html += `<div class="plant-slot">${plant}</div>`;
    }else{
      html += `<div class="plant-slot empty">🌱</div>`;
    }
  }
  grid.innerHTML = html;
}

function checkZombieWarn(){
  if(lastDate !== today){
    document.getElementById('zombieWarn').style.display = 'block';
  }
}

function closeZombieModal(){
  document.getElementById('zombieModal').style.display = 'none';
  renderPlants();
}

// ===================== 兑换功能 =====================
function exchangeTime(){
  if(sun < 100){
    showToast('阳光不足，完成任务赚取吧～');
    return;
  }
  sun -= 100;
  totalTime += 10;
  localStorage.setItem('sun', sun);
  localStorage.setItem('totalTime', totalTime);
  document.getElementById('sunCount').textContent = sun;
  document.getElementById('totalTime').textContent = totalTime;
  showToast('🎉 兑换成功！可玩10分钟电子产品');
}

// ===================== 加载今日内容 =====================
function loadTodayContent(){
  const data = wordBank[dayNum];
  
  let wordHtml = '';
  data.words.forEach((w,i)=>{
    wordHtml += `<div class="word-item">${i+1}. <b>${w.en}</b> ${w.phonetic} ${w.cn}</div>`;
  });
  document.getElementById('newWords').innerHTML = wordHtml;
  
  let phraseHtml = '';
  data.phrases.forEach((p,i)=>{
    phraseHtml += `<div class="word-item">${i+1}. <b>${p.en}</b> —— ${p.cn}</div>`;
  });
  document.getElementById('newPhrases').innerHTML = phraseHtml;
  
  loadQuiz(data);
}

// ===================== 加载自测题 =====================
function loadQuiz(data){
  // 英译中
  let enCnHtml = '';
  data.words.forEach((w,i)=>{
    enCnHtml += `
    <div class="quiz-item">
      <div class="quiz-question">${i+1}. ${w.en}</div>
      <button class="answer-btn" onclick="this.nextElementSibling.style.display='block';this.style.display='none'">显示中文</button>
      <div class="answer-text">${w.cn}</div>
    </div>`;
  });
  enCnHtml += `<button class="option-btn" style="width:100%;margin-top:8px;background:#689f38;color:#fff;border:none;" onclick="markTask('quiz1')">全部完成</button>`;
  document.getElementById('quizEnCn').innerHTML = enCnHtml;

  // 中译英
  let cnEnHtml = '';
  data.words.forEach((w,i)=>{
    cnEnHtml += `
    <div class="quiz-item">
      <div class="quiz-question">${i+1}. ${w.cn.replace(/^[a-z]+\. /,'')}</div>
      <button class="answer-btn" onclick="this.nextElementSibling.style.display='block';this.style.display='none'">显示英文</button>
      <div class="answer-text">${w.en} ${w.phonetic}</div>
    </div>`;
  });
  cnEnHtml += `<button class="option-btn" style="width:100%;margin-top:8px;background:#689f38;color:#fff;border:none;" onclick="markTask('quiz2')">全部完成</button>`;
  document.getElementById('quizCnEn').innerHTML = cnEnHtml;

  // 短语选词填空
  let phraseQuizHtml = '';
  const options = data.phrases.map(p=>p.en);
  data.phrases.forEach((p,i)=>{
    const shuffled = [...options].sort(()=>Math.random()-0.5);
    phraseQuizHtml += `
    <div class="quiz-item">
      <div class="quiz-question">${i+1}. ${p.cn}</div>
      <div class="quiz-options">
        ${shuffled.map(opt=>`
          <button class="option-btn" onclick="checkPhraseQuiz(this, '${opt}', '${p.en}')">${opt}</button>
        `).join('')}
      </div>
    </div>`;
  });
  document.getElementById('quizPhrase').innerHTML = phraseQuizHtml;
}

// ===================== 艾宾浩斯复习 =====================
function loadReviewContent(){
  const reviewDays = [1,3,6,14,29,59];
  let reviewList = [];
  
  reviewDays.forEach(d=>{
    const targetDay = dayNum - d;
    if(targetDay >= 1 && wordBank[targetDay]){
      reviewList.push({day: targetDay, data: wordBank[targetDay]});
    }
  });

  if(reviewList.length === 0) return;

  let html = '';
  reviewList.forEach((item)=>{
    const taskId = 'review_'+item.day;
    const done = tasks.review[taskId] || false;
    html += `
    <div class="task-item" onclick="toggleExpand('${taskId}')">
      <div class="task-check ${done?'done':''}" id="task-${taskId}">${done?'✓':''}</div>
      <div class="task-content">
        复习第${item.day}天单词+短语 <span class="review-tag">${item.data.stage}</span>
        <div class="task-sub">点击展开 · +20☀️</div>
      </div>
      <div class="task-reward">+20☀️</div>
    </div>
    <div class="expand-box" id="${taskId}">
      <div style="font-weight:500;margin-bottom:4px;">单词：</div>
      ${item.data.words.map((w,i)=>`<div class="word-item">${i+1}. ${w.en} —— ${w.cn}</div>`).join('')}
      <div style="font-weight:500;margin:8px 0 4px;">短语：</div>
      ${item.data.phrases.map((p,i)=>`<div class="word-item">${i+1}. ${p.en} —— ${p.cn}</div>`).join('')}
      <button class="option-btn" style="width:100%;margin-top:8px;background:#689f38;color:#fff;border:none;" onclick="markReview('${taskId}')">复习完成</button>
    </div>`;
  });
  document.getElementById('reviewList').innerHTML = html;
}

// ===================== 交互函数 =====================
function toggleExpand(id){
  const el = document.getElementById(id);
  el.style.display = el.style.display === 'block' ? 'none' : 'block';
}

function markTask(taskId){
  if(tasks[taskId]) return;
  tasks[taskId] = true;
  const rewards = {newWord:30, newPhrase:30, quiz1:20, quiz2:20, quiz3:20};
  sun += rewards[taskId];
  updateData();
  showToast('+'+rewards[taskId]+'☀️ 太棒了！');
  updateTaskStatus();
}

function markReview(taskId){
  if(tasks.review[taskId]) return;
  tasks.review[taskId] = true;
  sun += 20;
  document.getElementById('task-'+taskId).classList.add('done');
  document.getElementById('task-'+taskId).textContent = '✓';
  updateData();
  showToast('+20☀️ 复习完成！');
  updateTaskStatus();
}

function checkPhraseQuiz(btn, opt, answer){
  if(btn.classList.contains('correct') || btn.classList.contains('wrong')) return;
  if(opt === answer){
    btn.classList.add('correct');
    const correctNum = document.querySelectorAll('#quizPhrase .option-btn.correct').length;
    if(correctNum >= 5) markTask('quiz3');
  }else{
    btn.classList.add('wrong');
  }
}

function updateTaskStatus(){
  ['newWord','newPhrase','quiz1','quiz2','quiz3'].forEach(id=>{
    const el = document.getElementById('task-'+id);
    if(tasks[id]){
      el.classList.add('done');
      el.textContent = '✓';
    }
  });
  const allDone = ['newWord','newPhrase','quiz1','quiz2','quiz3'].every(id=>tasks[id]);
  document.getElementById('checkinBtn').disabled = !allDone;
}

function updateData(){
  localStorage.setItem('sun', sun);
  localStorage.setItem('todayTasks', JSON.stringify(tasks));
  document.getElementById('sunCount').textContent = sun;
}

// 打卡种植物
function doCheckin(){
  if(lastDate === today) return;
  plantCount++;
  lastDate = today;
  dayNum = Math.min(dayNum + 1, 160);
  localStorage.setItem('plantCount', plantCount);
  localStorage.setItem('lastCheckinDate', today);
  localStorage.setItem('dayNum', dayNum);
  document.getElementById('plantCount').textContent = plantCount;
  document.getElementById('zombieWarn').style.display = 'none';
  renderPlants();
  showToast('🌻 种下一棵植物！守住花园啦');
  document.getElementById('checkinBtn').disabled = true;
}

// 喂宠物换成提示
function showToast(text){
  const t = document.getElementById('toast');
  t.textContent = text;
  t.classList.add('show');
  setTimeout(()=>t.classList.remove('show'), 1800);
}

// 点击列表标记完成
document.getElementById('newWords').addEventListener('click',()=>markTask('newWord'));
document.getElementById('newPhrases').addEventListener('click',()=>markTask('newPhrase'));
</script>
</body>
</html>
