请实现一个以**自然选择、单基因显隐性和等位基因频率变化**为主题的二维交互可视化网页。

用户在岛屿观察站设置草地或雪地、开启或撤去捕食压力，逐代观察兔群的基因型与毛色组成，并保存可比较的实验记录。三个任务分别回答：隐性性状如何出现、环境如何改变选择方向、缺失的等位基因从哪里来。岛屿场景、频率曲线、遗传分析和实验结论必须来自同一套实际状态。

## 1. 核心操作与科学模型

采用单座位、二倍体、常染色体、完全显性的教学模型：B 为棕毛显性等位基因，b 为白毛隐性等位基因；BB 与 Bb 均棕毛，bb 为白毛。显性不等于有利，也不保证频率更高。不模拟牙齿、耳长、多基因、迁入迁出、资源竞争或真实兔类完整遗传机制。

本题计算**理想大种群的确定性频率期望**，不进行有限个体随机抽样，不模拟遗传漂变或真实数量增长、灭绝。岛上兔子图标表示组成示意，不是逐只出生与死亡的个体清单；界面持续标注这一模型边界，不能把频率期望说成一次随机实验的实测个体数。

以第 g 代出生时的基因型频率 x=f(BB)、y=f(Bb)、z=f(bb) 为状态，三者和为1；b 的频率 q=z+y/2，B 的频率 p=1−q。棕毛比例 x+y，白毛比例 z；比例、概率和代数均无量纲。所有历史曲线与实验卡统一记录各代**出生时**状态。

一代更新依次为“亲代存活选择→配子形成与突变→随机结合产生下一代”：

- 无狼时，BB、Bb、bb 的相对存活权重均为1，草地和雪地不造成毛色选择。有狼时，雪地权重为(0.5,0.5,1)，草地为(1,1,0.5)。这些是本题固定的教学参数，不是野外测量值。
- 令平均存活权重 W=x·wBB+y·wBb+z·wbb。存活亲代的 b 频率为 qₛ=(y·wBb/2+z·wbb)/W，选择后基因型为各自加权频率除以W。
- 每个配子等位基因以相同概率 μ 在 B 与 b 之间双向转换，q′=(1−μ)qₛ+μ(1−qₛ)。μ 只有0与0.01两个选项，默认0；0.01是放大观察用的教学值，不代表兔类真实突变率。突变概率不随地表、狼或目标方向改变。
- 下一代出生时 x′=(1−q′)²、y′=2q′(1−q′)、z′=q′²。此式用于随机配子结合后的出生状态，不能据此声称选择后的存活亲代也必然满足同一比例。

只按整代提交模型状态。可逐代推进，也可自动运行；自动默认每秒1代，可选每秒2或4代，只改变展示速度。阶段给定终止代数，到达即停止。环境和μ只在本次运行开始前设置；运行开始后固定，改变配置须建立新的对照运行。用户不能直接修改兔子的基因或用按钮补出目标兔群。

## 2. 实验阶段与任务目标

三阶段依次呈现；同阶段的对照组可自由选择运行顺序。开始前均为第0代预览，只有实际推进产生的代际状态可保存为结果。

| 阶段 | 初态与允许操作 | 提交通过条件 |
| --- | --- | --- |
| 隐性并未消失 | 初始(x,y,z)=(0,1,0)，草地、无狼、μ=0固定；展开亲代配子与结合分析，推进至第1代 | 保存第1代出生记录和已展开的遗传分析。记录显示BB:Bb:bb=1:2:1、棕毛:白毛=3:1，q由0.5保持为0.5；反馈解释初代无白毛并不等于没有b。 |
| 环境与选择方向 | 每组均从(0.25,0.50,0.25)开始，μ=0；选择草地/雪地及无狼/有狼，共四组，各推进至第8代 | 保存四个不同配置的第8代出生记录及完整0–8代曲线。两组无狼对照q保持0.5；有狼雪地q高于0.5、有狼草地q低于0.5。四组除环境与捕食开关外条件一致；同时列出末代q、白毛比例和各自变化量。 |
| 没有变异时选择能做什么 | 每组均从(1,0,0)开始，雪地、有狼固定；分别选择μ=0与0.01，推进至第12代 | 两组均保存实际第1代与第12代出生记录，共四份。μ=0组全程q=0、z=0；μ=0.01组第1代已有q>0且第12代q、z均大于0。比较两组实际轨迹，区分变异来源与选择作用。 |

本题共三个阶段、七次独立运行、九份必需代际快照：第一阶段1份、第二阶段4份、第三阶段4份。完整曲线属于对应运行记录，不另算过关阶段。可从本次实际生成的历史代中保存指定快照，不必为了第1代和末代重复运行；不得预填尚未发生的代际结果。

检查使用未舍入频率；固定比例与零值比较允许绝对误差10⁻⁸。第二阶段有狼两组的方向差需超过10⁻⁸。μ=0.01组的正值判断不使用界面四舍五入后的百分比。以上容差服务数值实现，不允许用预设结论替代更新模型。

## 3. 数值与视觉一致性

主图显示地表、捕食压力及兔群组成，配合出生时基因型条、棕/白表型条和q随代数曲线。q与白毛比例z分别标识，不能把b携带者全画为白兔，也不能把q直接当成白毛比例。展开分析可检查当前选择前、选择后亲代及下一代出生状态，并明确它们的生命阶段。

兔群图标可按比例近似呈现，注明“组成示意，精确频率见读数”；极小比例不能因图标取整而被说成零。频率以百分比显示，微小非零量可增加小数或用科学记数法，不能把真实非零显示为无说明的0%。图表共用代数与频率坐标，q纵轴固定0–1，保存对照不能通过不同缩放制造趋势。

环境改变只改变下一次独立运行的选择条件，不将当前棕兔瞬间染白。捕食动效仅解释相对存活差异，不逐帧决定频率；出生组成按本题更新规则形成，不把成年兔子的定向变色作为进化。

历史卡锁定配置、初态、代数、基因型、q、表型与对应曲线。当前运行、已保存对照、模型关系说明使用清楚的标识；改配置后不回写旧卡。

## 4. 连续交互与多阶段流程

提供“开始本阶段”、本阶段允许的配置选择、“开始本次运行”“下一代”“自动运行/暂停”“保存选中代记录”“重置当前运行”“提交结果”“重试本阶段”“下一阶段”和“全部重新开始”。可将同义入口合理合并，但不同重置范围须标清。开始运行后才允许推进；逐代与自动共用同一状态，重复点击不能并发产生多代。

自动运行到本组终止代数立即停止；暂停时不增加代数或改写模型，恢复从下一次整代更新继续。动画可在相邻代际间过渡，过渡期间展示明确的更新状态，保存和提交只读取已完成的代。第0代不冒充繁殖后的结果。

切换对照配置先停止自动运行、载入该组第0代，清除活动曲线与临时结果，保留本阶段已保存卡。重置当前运行保留所选配置、回到该组第0代；相同配置重新运行的历史可浏览，但提交按完整的同一次运行取证，第三阶段不得拼接两次运行的第1代和第12代。重复保存同一配置、同一运行、同一代不增加有效证据数量。

未通过时保留现场、有效记录和缺失项，可继续完成对照再提交。通过后冻结本阶段摘要，等待主动推进。重试本阶段清空该阶段记录、恢复表中初态，保留先前阶段摘要；进入第二阶段默认草地无狼，第三阶段默认μ=0。全部重新开始清除全部运行、记录和进度。最终展示三阶段证据摘要，不添加积分、星级或限时操作。

## 5. 结果与科学反馈

提交后逐项列出所需配置、已取得代数、实际频率、目标关系与满足情况。区分未推进到指定代、缺少对照、记录初态不符、把不同运行拼接、遗传分析未查看或数值关系不成立，不能只提示“失败，请重试”。

信息区结合本次状态解释：完全显性描述表型表达；无选择时隐性等位基因不会因“看不见”自行消失；草雪地本身不改变基因，有捕食差异时才产生本题的选择方向；自然选择作用于已有可遗传差异，不能在μ=0的纯BB群体里创造b。μ非零表示突变概率独立于需求，不表示每只兔子都突变或环境要求它变白。

第三阶段说明这一对照展示的是“突变与选择共同作用”相对于“仅选择”的差异，不能把全部频率变化都归给自然选择。三阶段均说明本题为确定性期望，现实有限种群可有随机波动，不要求现实每代必然单调；本题未演示遗传漂变、数量危机或灭绝。

## 6. 游戏风格、美学与可用性

**游戏风格：《Plague Inc.》的环境策略地图与趋势面板 ×《SimEarth》的生态观察台。** 采用“进化孤岛观察站”概念，二维俯视小岛是核心观察区，环境工单与遗传记录构成统一的生态实验桌；参考地图组织、环境控制与趋势反馈，不继承疾病传播或灾害经营玩法。

- **场景与材质**：手绘地形、草地与雪地材质、海岸线、观察站木牌与纸质记录。棕白兔造型原创且轮廓清晰，狼以边缘巡逻标志与捕食压力牌呈现，不用猎杀画面遮挡数据。
- **科学操作的游戏化呈现**：地表牌与狼群开关直接对应选择权重，代际推进台驱动实际遗传更新，档案夹保存真实状态。μ开关标为“突变概率条件”，不能包装成给兔子定向升级的按钮。
- **阶段场景重点**：第一阶段突出棕毛亲代携带的B/b与配子结合窗；第二阶段让四组环境档案并列对比；第三阶段突出纯BB起点、μ条件与早期低频b轨迹。地图、图表与任务板共享同一状态，不只更换标题。
- **颜色与信息层级**：棕/白表型配毛色和文字，BB/Bb/bb配固定纹理或符号；q与白毛比例使用不同线型和图例。第几代、当前配置、目标、已保存证据持续可见，选择后与出生时读数分区标识。
- **反馈动效**：代际完成时频率条和曲线同步增加一个实际数据点，存活权重高亮解释选择差异；新代兔群重新排列，不让同一只成年兔子变色。保存后生成带代数的卡，未通过高亮实际缺失的对照。

默认1440×900下核心小岛、主要参数和代际操作无需横向滚动；窄屏允许重排与纵向滚动。遗传分析和反馈可收起，不遮挡主操作；状态同时有文字/图标，不仅依赖颜色。动效可减弱，音效可选并可静音。素材自行创作，绘图与代码组织自行选择。

## 7. 交付要求

提供完整可运行的纯前端网页，以 `index.html` 为入口，通过本地HTTP服务即可打开。附源码、运行说明和实际完成的自检说明。

核心流程不依赖后端或外部网络，依赖与资源随项目提供。界面中文，频率、概率与代数的含义明确。内部命名、算法实现和绘图技术由你决定；未完成或未验证部分如实说明。
