
marathon 模式 第 2 轮 · 玩法 NN=01 · 2026-05-18 · GO 8.125
marathon 模式 第 2 轮 · 玩法 NN=01 · 2026-05-18 · GO 8.125
3×3 网格随机弹出地鼠 / 金鼠 / 炸弹,30 秒倒计时累计刷分。
双击 build/index.html
桌面:鼠标点击 | 移动端:单指 tap
src/index.html / build/index.html 双份同步DESIGN.md 数据结构 + 状态机PLAYTEST_REPORT.md / ACCEPTANCE_REPORT.md / EXPANSION_PLAN.md / CHINA_MOBILE_COMMERCIALIZATION_PLAN.mdJOURNEY_MAP_FEEDBACK.md / USER_PERSONA_FEEDBACK.md / ACCEPTANCE_UPGRADE_FEEDBACK.md完整调研:../../reports/2026-05-18-01-mole-tap-rush-candidates.md
「30 秒决策密集型打地鼠 — 在 3 类目标的取舍中持续做出小决定」
480 × 720 移动竖屏
tap → 命中目标 → +/- score → combo +1 或 0 → 30s 累分
↓
target spawn loop(每 interval ms 随机洞)
↓
tier change(10s/档加速)
↓
30s 时间到 → gameoverS = {
scene: 'menu' | 'playing' | 'gameover',
score: number,
combo: number,
maxCombo: number,
timeLeft: number, // s
holes: Array<{type, spawnAt, ttl} | null>[9],
totalHit: { normal, gold, bomb },
totalMissed: number,
startTime: ms,
lastSpawn: ms,
lastTickedTier: index
}| 档 | from(timeLeft) | interval | activeMs | gold% | bomb% |
|---|---|---|---|---|---|
| 初级 | 30 | 800 | 800 | 15 | 15 |
| 中级 | 20 | 650 | 750 | 18 | 20 |
| 高级 | 10 | 520 | 680 | 20 | 25 |
| 狂热 | 5 | 420 | 600 | 22 | 30 |
menu →[click START]→ playing
playing →[rafLoop]→ playing
playing →[timeLeft<=0]→ gameover
gameover →[click RESTART]→ playingfloatHole() 在 src/index.html L260-270.target.hit keyframe @keyframes hit.flash-screen.red 全屏闪#tier-flash 在 spawnLoop 中触发3 问全过 → 复玩动力 8 / 策略空间 7(基线)
| 时刻 | 玩家行为 | 系统反馈 | 预期心理 |
|---|---|---|---|
| 0:00 | 看菜单 3 条规则 + emoji 示例 | 静态页 | "懂了" |
| 0:02 | 点 START | 菜单消失,地鼠开始弹 | 进入战斗状态 |
| 0:03 | 第 1 个普通鼠弹出 | tap → +10 弹字 + 缩放 | "我会玩了" |
| 0:05 | 第 2-3 只接连弹出 | tap 多个 → combo 累积 | "节奏感" |
| 0:08 | 第 1 个金鼠弹出 | tap → +30 金光 | "爽" |
| 0:12 | 第 1 个炸弹弹出 | 误 tap → -20 红震 | "草,要看清" |
| 0:20 | 进中级 | 全屏黄闪 + "中级!加速!" | "心跳加速" |
| 0:25 | 连击达 5 | "×5 连击!" + bonus | "保持手感" |
| 0:35 | 进高级 + 炸弹密集 | 红震频繁 | "紧张" |
| 0:45 | 倒计时变红 | "5s" 闪烁 | "冲刺" |
| 0:50 | 时间到 | gameover + stats | "差点破 200 分" |
| 0:55 | 点 RESTART | 立刻重开 | "再来" |
| 问题 | 答 | 证据 |
|---|---|---|
| Q1 玩家在第 1 秒知道要干嘛? | 是 | 菜单页 3 条规则 + START 按钮,进入后第 1 个目标 < 0.8s 弹出 |
| Q2 玩家在第 3 秒能否反馈"我做对了"? | 是 | 第 1 次 tap 普通鼠 +10 浮字 + 缩放 + 分数滚动 |
| Q3 玩家在第 30 秒能否决定"再来一局"? | 是 | gameover 直接 RESTART 按钮 + 击中分类激发挑战 |
3 问全过 → 复玩动力 / 策略空间 ≥ 7。
| Juice | 计划 | 实现 | 生效证据 |
|---|---|---|---|
| J1 弹分浮字 | tap 时浮字 +10/+30/-20 | floatHole() | tap 触发 .float 元素 1s 动画 |
| J3 缩放反馈 | tap 时缩放消失 | .target.hit @keyframes hit | scale 1→1.35→.1 |
| J5 屏幕震动 | 炸弹 tap 全屏闪 | .flash-screen.red | opacity .5→0 |
| J7 难度档闪光 | 档变化全屏黄闪 + 字弹 | #tier-flash + .flash-screen.yellow | 进档时触发 |
✅ 4 项 Juice 真实生效。
node --check PASS| 路径 | 处理 |
|---|---|
| 没 tap 普通鼠/金鼠 | 自动 expire → totalMissed +1 / combo 归零 |
| 没 tap 炸弹 | 自动 expire → 视为安全(合理) |
| 重复 tap 同洞 | 第 2 次 onHoleTap 见 S.holes[i]=null 直接 return |
| 横屏切换 | viewport user-scalable=0 + body flex 居中 + 固定 480×720 |
俄罗斯方块 lite · 7 种方块下落 · 消行得分 · 顶到顶 = GG
点击地图节点放置塔 · 自动攻击 · 10 波敌人 · 守住基地
鼠标瞄准 + 单击发射 + 3+ 同色相邻 = 消除 + 浮动消失 + 通关或泡泡触底
拖拽画几条斜板 → 按 GO → 看小球被重力 + 反射推进,落入篮筐 = 过关。
鼠标瞄准 + 单击释放 + 同级球碰撞自动合成升级 + 容器顶部红线 = Game Over
—