<!-- title: 《guandan-lab》不写游戏，写驾校 -->
<!-- domain: games -->
<!-- repo: Mereithhh/guandan-lab -->

2023 年前后，掼蛋从江苏安徽的牌桌一路打进了全国的商务包厢，金融圈甚至传出“饭前不掼蛋，等于没吃饭”的段子。你想蹭这波热度入局游戏开发，在 GitHub 上搜 guandan，出来 79 个仓库：一半是大学课程作业，一半是 Cocos2d-x 商业源码拆卖，剩下的多是能跑但不肯打磨的半成品。而排在 Best match 第一位的，是一个只有 12 星的 TypeScript 仓库——**Mereithhh/guandan-lab**。它的定位很怪：别人做掼蛋游戏，它做掼蛋的**驾校**。不押注、不卖房卡，它教你在十五分钟里学会规则，然后陪你练到你“体面上桌”。

## 仓库档案

- **仓库**：[Mereithhh/guandan-lab](https://github.com/Mereithhh/guandan-lab)
- **Star**：12（据仓库页面，2026-10-11）；Fork 6；Open Issues 13
- **语言**：TypeScript（Next.js），主代码约 1.2 万 KB 的仓库体量，TypeScript 全家桶 + SQLite
- **License**：Apache-2.0
- **作者**：Mereithhh，个人开发者，国内某 AI 创业公司全栈工程师，此前靠个人博客系统 VanBlog（3.6k 星）和轻量导航站 van-nav（1.2k 星）在自托管圈子里小有名气
- **时间线**：2026-08-22 建仓，2026-10-07 还在推代码，两个月迭代到 beta.15，走的是“开源基础 → 云存档 → 服务端匹配”的路线图
- **在线 Demo**：[guandan.mereith.com](https://guandan.mereith.com)，由作者自己的 Docker 服务承载，游客免注册直接开打，可安装为 PWA

作者自己的措辞是：“快速会打，体面上桌。”默认剧本叫“陪王总上桌”——你被拉去陪领导打掼蛋之前，先来这里把功课补齐。

## 这游戏（训练器）是什么

掼蛋本身是四人两队的牌类游戏，两副牌共 108 张，级牌逢人配、进贡还贡、头游二游定胜负，规则密度远超斗地主。guandan-lab 把“会打”拆成了四个训练模块，构成一条完整的练习闭环：

```mermaid
flowchart LR
    A[15分钟 mastery 课程] --> B[AI 四人陪练牌桌]
    B --> C{本局结果}
    C -- 头游/二游 --> D[升级快感<br>升到A再过A]
    C -- 三游/末游 --> E[逐手复盘<br>牌技分+社交分]
    E --> F{弱项在哪}
    F -- 记不住牌 --> G[九宫格记牌训练<br>已见牌减法]
    F -- 关键手打错 --> H[王总局残局<br>5-7张手牌闯关]
    G --> B
    H --> B
    D --> B
```

每一环都在回答“接下来点什么”：课程教规则，牌桌给即时胜负，复盘告诉你输在哪一手，残局关卡和记牌训练把弱项单独拎出来刷，然后你带着新认知回到牌桌。README 里那句“所有候选动作经真实规则引擎校验”是关键——残局不是摆拍，是同一套引擎跑出来的真题。

## 为什么上头

**掼蛋本身的钩子**。掼蛋是“升级”类游戏的一员，它的成瘾结构是三层套娃：单局的头游奖励感（率先出完的爽感被规则放大）、双局的配合叙事（你和搭档的攻防默契）、跨局的升级进度（从 2 打到 A，A 过不了就原地重来）。逢人配（红桃级牌当万能牌配）给了每手牌一个“凑成大牌型”的多巴胺小开关；进贡机制让上一局的输家带着屈辱开局，复仇动机直接写进规则。这套机制让掼蛋的“再来一局”冲动比德扑更密集、比斗地主更有叙事。

**训练器的钩子是进度外化**。游戏上头靠机制，教学产品上头靠“可见的成长”。这个仓库拆出了两种分数：牌技分和社交分——前者评你打得对不对，后者评你打得得不得体（比如能不能别在队友报牌时乱垫牌）。残局关卡每关只有 5-7 张手牌，通关成本极低，是标准的“就差一关”设计；九宫格记牌训练把“记牌”这个掼蛋最难的能力做成了可刷的分数。游客模式下 localStorage 自动存训练档案，配合“下次接着练”的心理，回头率就是这么来的。

**陪练 AI 的人设是隐藏彩蛋**。三个本地 AI 对手各有固定牌风：王总稳健控场、小顾搭档优先、林姐效率突围。你打的不是随机数生成器，是三个“人”，这让单机陪练有了真人桌的社交感——而这恰恰是掼蛋作为社交货币的核心体验。

## 技术拆解

这个仓库真正值得抄的是几条工程决策，每一条都能直接搬走：

1. **零 I/O 确定性规则核心**。`lib/game` 不碰网络、不碰存储，纯函数实现 2022 年《竞技掼蛋竞赛规则（试行）》，配 32 项一致性检查和 176 项单元/契约测试。牌张守恒、非法动作、贡还牌、AI 不作弊观察全在测试覆盖里。想写任何牌类游戏，这个“规则引擎即测试夹具”的结构是最值得照抄的骨架。

2. **公平 AI 的可见信息边界**。README 专门写了“AI 不作弊观察”测试——AI 只能看自己的手牌和公开出牌记录。国内棋牌 App 被诟病最多的就是“AI 偷看牌”，这个仓库把“不作弊”做成了可测试的规格，这在开源棋牌项目里非常罕见。

3. **大模型反幻觉架构**。赛后复盘接大模型时，模型只收到公开出牌事件和不含暗牌的本地统计，且**只能从受控的牌风代码里选择**，由本地映射成审核过的文案；超时、限流、自由文本一律回退本地证据复盘。牌技分和社交分由本地代码算，LLM 只负责“说话”。这是把 LLM 当“口播员”而不是“裁判”的教科书设计，做任何 AI 陪练类产品都适用。

4. **朴素但靠谱的联机方案**。四人真人匹配 Beta 没有上 WebSocket，而是服务端权威状态 + 每秒短轮询 + 版本化动作日志 + 座位投影（你只能看到自己的手牌）+ 刷新重连。对副业开发者来说，“轮询 + 事件日志”比实时协议便宜一个数量级，MVP 阶段完全够用。

5. **自托管经营的完整账本**。付费服务（大模型、TTS）按 UTC 日在 SQLite 里原子扣减配额，单用户日预算 + 全站日预算双闸，配熔断器、半开探针、进程内并发上限，TTS 相同文本走哈希缓存。甚至有一个 `doctor.mjs` 自检脚本，部署前检查所有能力开关且不泄露密钥。这一整套“个人开发者怎么安全地把 API 成本转嫁出去”的配置，比游戏本身更稀缺。

## 变现观察

仓库内的变现痕迹很克制：页脚有可选的 `SUPPORT_URL` 打赏二维码（自愿赞助），付费服务配额机制本质上是在为“自托管运营商”铺路——你部署一套，自己付 API 钱，向你的用户收钱。路线图里 1.0 的“可复用规则 SDK”暗示作者知道规则引擎本身可以卖。

放到行业里看，这个选题踩在一条被反复验证的路径上：棋牌是中文互联网变现效率最高的品类之一，掼蛋小程序如今清一色广告 + 内购 + 房卡抽成；而“教学”这条岔路，国际象棋已经跑通了样板——chess.com 靠会员课和教练业务把一个古老的棋种做成了订阅制生意，围棋、桥牌的在线教学市场同样成熟。掼蛋的官方竞赛规则 2022 年就落地了，竞技化在推着整个牌种从“酒桌消遣”往“有点子认真”迁移，认真就意味着有人愿意为训练付费。12 星的个人仓库当然还没赚到钱，但它卡住的位置是：掼蛋流量很大，掼蛋教学供给几乎为零——搜遍 GitHub，79 个结果里做训练器的只有它一个。

## 给我的灵感

1. **换牌种复刻训练器（MVP 2-3 周，中等难度）**。骨架是通用的：确定性规则引擎 + 公平 AI + 记牌训练 + 复盘。最直接的靶子是德州扑克的“范围训练器”或斗地主的“记牌器 + 叫牌训练”——这两个需求搜索量远大于掼蛋，且已有付费工具验证过市场（德扑 GTO 训练器是独立开发的经典变现案例）。变现走小程序广告 + 解锁完整课程（6-12 元买断）。

2. **只做残局关卡包（MVP 1 周，低难度）**。不做完整游戏，只做“每日一局”：每天一道真实引擎校验的掼蛋/斗地主残局，答对打卡，连续七天解锁一个牌风分析报告。这是典型的引流品结构，日活钩子 + 一次性付费报告，一个人一周能跑通。

3. **把“AI 只说不判”架构做成模板卖（MVP 2 周，低难度）**。guandan-lab 里“LLM 输出受控代码、本地映射文案、超时回退本地”这套模式，可以原样套到任何教学陪练产品：健身动作点评、简历诊断、口语陪练。把它抽成一个带 SQLite 配额和熔断的开源模板，用 GitHub 星标引流，模板本身免费、托管服务收费——这正是作者自己在走的路。

## 上手

- 仓库：https://github.com/Mereithhh/guandan-lab
- 在线 Demo：https://guandan.mereith.com （游客免注册，可 PWA 安装）
- 本地跑：Node.js 22.13+，`git clone` 后 `cp .env.example .env.local && npm ci && npm run dev`，不开任何密钥就能玩到完整本地训练；Docker 一条 `docker compose up --build` 可上生产
- 无密钥自检：`curl -s http://localhost:3000/api/session` 看 agentProvider 和 voiceProvider 落在哪档

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
