🦊 三六局 V2
AI 主持人驱动的聚会破冰游戏 · 模块化架构 · 目标平台 微信小程序
核心架构
AI 担任主持人,全权驱动游戏进程。人类降级为「超级管理员」——只控制节奏和越权干预。
模块化设计,每模块 <500 行,移植微信小程序时仅需替换 UI 层和存储适配器。
模块结构
| 层 | 文件 | 行数 | 职责 | 移植 |
| data/ | constants.js, penalties.js | 254 | 常量、惩罚词库 | ✅ 直接复用 |
| state/ | game-state.js | 170 | 全局状态管理 + 持久化 | ⚠️ 换 storage 适配器 |
| engine/ | round-manager, match-calc, penalty-engine | 288 | 游戏逻辑(纯函数) | ✅ 直接复用 |
| ai/ | prompt-templates.js, ai-client.js | 295 | AI 通信 + Prompt 管理 | ⚠️ fetch→wx.request |
| channel/ | supabase-channel.js | 121 | Supabase Realtime 消息总线 | ⚠️ 小程序版 SDK |
| ui/ | renderer.js | 260 | DOM 渲染 | ❌ 整体替换为 WXML |
| app/ | actions.js | 410 | 编排层 + 消息处理 | ⚠️ 事件绑定替换 |
游戏循环
AI 出题→
30s 计时→
自动分析→
匹配结果→
阈值检测→
惩罚投票→
本轮结算→
下一轮
自动化流程
- 计时归零 → 自动触发 AI 分析(800ms 延迟)
- 分析完成 → AI 匹配结果广播全端
- 阈值触发 → 自动生成惩罚候选 → 全员投票 → 自动决议
- 本轮题目达上限 → 自动进入结算(8s 展示延迟)
- 结算 → AI 生成轮次小结 + 嫉妒值揭晓
- 进入下一轮 → 1.5s 后自动出首题
- 三轮完毕 → AI 终审报告
通信协议
| 方向 | 消息类型 |
| Host → All | GAME_STARTED, QUESTION, TIMER_TICK, TIMER_END, MATCH_RESULT, VOTE_START, VOTE_RESULT, ROUND_SETTLEMENT, ROUND_CHANGED, JEALOUSY_UPDATED, GAME_ENDED, AI_THINKING, ROOM_STATE |
| Player → Host | PLAYER_JOINED, PLAYER_ANSWER, PLAYER_REJOINED, VOTE_CAST, ROOM_STATE_REQUEST |
基于 Supabase Realtime Broadcast(PubSub 模式)。Host 浏览器为状态权威源,每隔 3 秒 + 状态变化时广播全量 ROOM_STATE。玩家终端是瘦客户端——只接收广播、提交回答/投票。
消息循环机制 已实现
状态同步策略
- 每 3 秒:Host 广播完整 ROOM_STATE(room, players, game, heat)
- 状态变化时:立即广播 ROOM_STATE(玩家加入、计时结束、匹配完成)
- 玩家重连:发送 PLAYER_REJOINED → Host 重播 ROOM_STATE(5s 超时)
会话持久化
- localStorage:当前会话信息 + Host 完整备份(30 分钟过期)
- 刷新恢复:自动检测未完成游戏 → 显示重连横幅 + 相对时间
- 跨设备:通过 Supabase 实时通道从 Host 恢复状态
AI 架构
AI 主持人 System Prompt DeepSeek
你是三六局(Sanliuju)的AI主持人。你全权负责游戏进程:出题、收集回答、计算匹配度、触发奖惩、生成总结。
第一轮「信息采集」:出轻松诙谐的生活化问题。轮末生成初始匹配矩阵。
第二轮「当下匹配」:聚焦当下场景,根据回答自动生成暖心/火花值。
第三轮「人性博弈」:清空前两轮日志,深度价值观拷问,玩家通过回答悄悄提升匹配度。
输出格式:所有输出必须是 JSON,包含 func 字段指定渲染函数。
风格:幽默、戏精、接地气,问题让人一愣然后笑。
AI 调用
| 调用 | 触发 | 超时 |
| generateQuestion | 出题按钮 / 自动出首题 | 10s |
| analyzeMatches | 计时结束(自动) | 20s |
| generateRoundSummary | 本轮结算(自动) | 15s |
| generateGameReport | 游戏结束 | 20s |
部署
| 组件 | 平台 |
| 前端 | Cloudflare Pages(静态站点) |
| AI 代理 | CF Pages Function /api/ai → DeepSeek API |
| 实时通信 | Supabase Realtime Broadcast |
| TTS(计划中) | 百度短文本合成 API(精品音库,5 万次) |
移植路径
| 阶段 | 平台 | UI 层 | 状态存储 |
| 1 ✅ | Web 模拟器 | HTML DOM | localStorage |
| 2 📱 | 微信小程序 | WXML + WXSS | wx.setStorageSync |
| 3 📲 | APP | React Native / Flutter | AsyncStorage |
技术标签
Vanilla JS
IIFE 模块
localStorage
CSS Animations
Supabase Realtime
Cloudflare Pages
DeepSeek API
@supabase/supabase-js
三六局 Sanliuju V2 · 2026-05-15