请为对遗传和环境适应感兴趣的中文用户制作一件可自由操作的科学交互作品：**2.5D“进化孤岛观察站”**。核心体验是为同时可见的两岛独立设置环境、用共享时钟逐代比较组成与频率，并回看实际历史以理解条件何时产生影响。

两岛处于同一固定斜俯视海域，群体场景、条件标签和趋势共同解释变化；当前、下一代生效与只读历史各有清楚身份。用户自由选择条件和观察时长，不设置目标频率、指定代数任务、关卡、固定实验路线、记录配额或提交判定。

## 1. 科学模型与可操作范围

采用单座位、二倍体、常染色体、完全显性教学模型。B为棕毛显性等位基因，b为白毛隐性等位基因，BB/Bb为棕毛、bb为白毛。显性描述表型表达，不代表更适应或更常见。

计算理想大种群的确定性频率期望，不做有限个体抽样，不模拟数量增长、灭绝或遗传漂变。兔图标仅表示组成，不是逐只生死的清单；模型说明容易找到。只研究毛色，不增加牙齿、耳长、多基因、迁入迁出或定向投放突变体。

每代出生时x=f(BB)、y=f(Bb)、z=f(bb)，x+y+z=1；b频率q=z+y/2，B频率p=1−q。白毛比例为z，棕毛比例为x+y，不能将q当成白毛比例。频率、概率、选择强度与代数无量纲。

| 控制 | 合法范围与步长 | 默认值及作用范围 |
| --- | --- | --- |
| 地表 | 草地、雪地 | 两岛均草地，各岛独立 |
| 捕食选择强度s | 0–0.80，步长0.05，滑块与精确输入 | 两岛均0，各岛独立 |
| 双向突变概率μ | 0–0.010，步长0.001，滑块与精确输入 | 两岛均0，各岛独立 |
| 初始组成 | 混合(0.25,0.50,0.25)、全杂合棕毛(0,1,0)、仅BB(1,0,0) | 混合，两岛共享 |
| 自动推进节奏 | 每秒1、2或4代 | 每秒1代，两岛共享 |

s=0时无毛色选择，地表本身不改变基因频率。s>0时，雪地BB/Bb/bb存活权重为(1−s,1−s,1)，草地为(1,1,1−s)；这些是相对存活的教学参数，不是野外实测值。每次完整代际更新按下列次序：

1. 亲代选择：W=x·wBB+y·wBb+z·wbb，选择后各基因型频率为原频率乘相应权重再除以W；qₛ=(y·wBb/2+z·wbb)/W。
2. 配子形成与双向突变：q′=(1−μ)qₛ+μ(1−qₛ)，B与b以相同概率相互转换，概率与环境需求无关；上限是观察用放大值，不代表真实兔类突变率。
3. 随机配子结合：下一代出生组成x′=(1−q′)²、y′=2q′(1−q′)、z′=q′²。出生状态与选择后亲代分开，后者不必满足随机结合比例。

以上是模型更新顺序，不是用户必须依次执行的实验路线。

## 2. 交互行为与动态反馈

**调节单岛环境。** 每岛附近有地表、s和μ控制，只影响对应岛，操作时突出该岛、条件标签及其图线。草地/雪地可通过环境牌拖放或点选切换；拖放期间显示候选岛，Esc、明确取消入口或无效落点均移除预览，不改变该次拖放前的待生效条件。两岛参数独立，初始组成、下一代、自动运行/暂停和重新开始是共享控制，位置及标签明确作用范围。

运行或暂停时均可编辑环境。地表与压力即时预览，尚未参与计算的条件标为待生效，当前已出生组成和读数保持原状；下一次更新使用各岛当时最新设置，多次编辑以最后选择为准。s/μ滑块即时更新待生效设置；Esc结束操作或放弃未确认输入，不回退已完成的代际更新。整代完成后，场景组成、频率读数、基因型条与曲线同步更新，条件变化标记落在实际生效代。若只改变条件而未推进，不改写已有曲线或制造新代。

**推进与暂停。** 首次打开为共享混合初态的第0代、暂停状态，立即允许编辑。逐代与自动推进共用同一模型，每次两岛一起更新，代数对齐；每秒1/2/4代只改变展示节奏。完成整代后才增加代数和数据点，记录用于生成该出生代的实际条件。暂停立即停止新的代际更新，继续从保留的最新状态推进；重复点击不并发产生多代，过渡动效不重复计算。当前读数明确对应已经完成的出生代。暂停期间不补算墙钟时间，恢复运行只从该完整代继续。

**观察组成与趋势。** 两岛场景、基因型条、毛色比例、q与趋势来自同一状态，曲线共享代数和0–1频率标尺；q与白毛比例使用不同线型、图例并分列。点选BB/Bb/bb图例或组成示意，联动突出相关代表图标、表型映射与定量读数，再次操作可退出强调。兔图标可以近似比例，但精确频率保留足够小数或科学记数法，微小非零量不因取整被说成不存在。环境变化不使成年兔瞬间变色；捕食反馈只表达相对存活，图标数量、移动和装饰不决定更新结果，不编造个体谱系或真实出生死亡数。

**查看只读历史。** 悬停曲线只显示指定代两岛的数值与条件提示，主场景保持当前。点击或触屏点按历史代时暂停自动推进，让两岛场景、组成条和详情共同呈现该代，醒目标注“历史·第g代”；最新模拟状态及最新待生效条件保留，最新代位置与“回到当前”入口清楚。历史条件对应生成该代的记录，第0代标为初始组成；历史不采用当前待生效配置重算。回到当前后保持暂停。历史查看中编辑环境、下一代或启动自动运行时，先退出历史，再作用于最新状态；环境仍从下一次更新生效，不从旧代悄悄分叉。

**解释与重新开始。** 解释跟随当前岛、条件或所选历史代，展示出生组成、q、白毛比例及相对前一代变化；第0代没有前代时明确不适用。可展开“亲代选择—配子—后代”的当前关系。两岛比较先说明条件差异，同时改多个因素时保留实际标记，不将结果强归因于一个因素。解释显性与适应性的区别、杂合子携带b、环境筛选已有差异，以及μ=0时缺失等位基因不能凭改变地表恢复。开启突变表示变异来源，不代表环境要求产生有利突变；平缓、静止或反向趋势按实际组成与条件说明，不将确定性期望说成现实有限种群每代必然发生的轨迹。

“重新开始”保留各岛当前选择的环境，以共享初始组成回到第0代，清空旧曲线、条件标记、历史选择、图例强调及未完成预览，记录新第0代点并暂停，保留用户当前节奏；切换初始组成执行同样重启，当前条件从随后第一次推进参与计算。首次打开两岛均为草地、s=μ=0、共享混合组成、每秒1代且暂停，图例无强调、详情收起；重新开始保持详情显隐，不将环境或节奏悄悄重置。输入为空、非数或越界时保留最近合法条件并解释范围。无需保存卡、提交或启动实验阶段，查看历史与调参始终服务自由观察。

## 3. 游戏风格与视觉设计

**游戏风格：参考《Plague Inc.》的环境地图与趋势反馈，以及《SimEarth》的生态观察台，制作2.5D双岛微缩景观。** 素材自行创作，固定斜俯视，不继承传播、经营或灾害玩法；图表保持正视可读。

- **场景与材质**：两岛属于同一海域，岸壁侧面、起伏地表、抬升标牌和接触阴影形成深度；草、雪、海水与木质工具有可辨表面。兔子有耳和身躯轮廓、统一体积方向与落地阴影，白兔在雪地、棕兔在草地仍能定位。地形不遮住群体与控件。
- **科学操作的游戏化呈现**：环境牌、岛边压力与突变控制像观察站工具，作用岛和待生效条件有就地标记。BB/Bb用标签或纹理区分且都为棕毛；抓取、候选岛和确认有局部反馈，工具不包装成定向升级兔子。
- **观察层次与交互重点**：默认1440×900首屏必须同屏看清A/B两岛、各自地表/s/μ入口、两岛出生组成及q/白毛比例、当前代数与共享推进/暂停/节奏/初始组成/重新开始入口；共享趋势保留同屏可读视图和稳定A/B图例。进入历史后，历史代标记、最新代位置和回到当前入口同屏可见；当前待生效条件与历史条件可分别读取。布局不设面积占比，群体是主体，公式和长解释默认收起，调参和历史查看不交换岛身份或重排场景。
- **颜色与信息层级**：A/B身份稳定，基因型与毛色兼用符号、形状和纹理，q与白毛比例分列且线型不同。当前、待生效、暂停和历史只读有文字标识，微小频率、代数和条件标签清楚。
- **反馈动效**：换地表不使成年兔变色，整代完成后场景与读数同步更新；狼影或权重反馈仅表达相对选择。代际重排与装饰活动可区分，历史群体不继续演化，海浪和环境光不抢趋势视线。

默认、待生效、运行和历史画面均保持完整生态观察台美感，不能用两张卡片加阴影代替岛屿空间。窄屏可上下排列并纵向滚动；环境有点选入口，参数可精确输入，历史可触屏点选，主要入口有可见键盘焦点。装饰动效可减弱，音效可选且可静音；具体岛形、角色、布局与绘图技术自行选择。

## 4. 交付要求

交付完整可运行的纯前端网页，以`index.html`为入口，通过本地HTTP服务即可打开。源码、依赖和资源随项目提供，核心流程不依赖后端或外部网络。

界面中文，频率、概率、选择强度和代数含义明确。附运行说明和实际完成的自检说明，未完成或未验证部分如实记录。框架、内部命名、算法与代码组织自行选择。
