<!-- title: 《复扫雷》雷是复数，扫雷变解方程 -->
<!-- domain: games -->
<!-- repo: Yueqing-Chen/complexweeper-A-minesweeper-game -->

打开「复扫雷」（Complexweeper），第一眼是怀旧：Win98 味道的像素脸按钮、灰色浮雕边框、熟悉的九宫格。你随手翻开中间一格，屏幕上跳出一个数字——**√2**。

√2 不是周围有一根√2根雷。它意味着：周围八格里埋着四种雷（+1、−1、+i、−i）的某种组合，它们加起来的复数，模长恰好是√2。可能是对角线上一对 (+1, +i)，可能是 (−1, −i)，也可能是雷区里藏着一对互相抵消的正负实雷、再加两个虚雷。经典扫雷的数字只回答“有几个”，而这个游戏的数字开始回答“是什么”——扫雷从数数游戏，悄悄变成了在复平面上解方程的游戏。这就是今天要拆的仓库：**Yueqing-Chen/complexweeper-A-minesweeper-game**，一个把初等数学当玩法引擎的中文个人项目。

## 仓库档案

- **名称**：复扫雷 Complexweeper，仓库全名 `complexweeper-A-minesweeper-game`——起名直白得像搜索时代的 SEO，但也说明作者心里清楚这游戏一句话就能讲清
- **作者**：Yueqing-Chen（README 里署名“青月晓”），个人开发者，中文项目，README、提交说明、素材文档全是中文
- **数据**：⭐68、7 个 fork、37 个 commit，建仓不到三周的新仓库（数据据仓库页面）
- **技术**：Zig + Win32 API，原生 Windows 程序，零第三方库、零运行时依赖
- **License**：GPL-3.0（代码）；微软原版扫雷图像素材被明确排除在 GPL 之外，单独说明
- **试玩**：仓库里直接带“正式版”目录存放成品，clone 即玩；没有挂在线 Demo

## 这游戏是什么

一句话：扫雷的规则里只改了一条——**雷不再是“1 个”，而是四种复数（正实、负实、正虚、负虚），格子显示的数字是周围所有雷的复数之和的模长**。

别小看这一条改动，它牵出的连锁反应全都是设计：

**数值表塌缩成 24 种。** 因为周围最多 8 格，模长的取值是有限的：0 到 8，加上 √2、√5、√10、√13、√17、√26、√29、√34、√37、2√2、2√5、3√2、4√2、5√2、2√10。经典扫雷的数字是“计数”，这里的数字是“光谱”——每一种模长对应一族可能的雷组合，玩久了你会像认音阶一样认出它们。

**抵消对是灵魂。** 一颗 +1 和一颗 −1 相邻时互相抵消，对模长的贡献为零。于是“0”和“空白”不再是一回事：空白表示周围完全没有雷，0 表示周围有雷、但全部成对抵消了。你能“看见”不存在的雷。

**展开判定变成假说检验。** 经典扫雷的双击和弦在这里被改造成：只有当你插的旗帜数量等于真实雷数、且实虚比例符合真实比例（或其倒数）时，才允许展开。作者甚至在规则里明说：可以利用这一点**试探**周围是否存在抵消对——把赌博式的乱插旗，变成了有数学依据的策略行为。

**胜利与复盘。** 胜利判定和原版一致：翻开所有非雷格子（不是插对全部旗）。而无论输赢，结局都会揭晓你标对了哪些雷、标错了哪些雷。

游戏目前有两种模式。除了上面的复数模式，还有**闵可夫斯基模式**：定义单位 j²=1，时空间隔 S=√(a²−b²)，四种雷变成正负类时雷和正负类空雷，数值表扩到 40 种（含纯虚数），展开判定更严格——实部和 j 部的旗数都要精确对上。作者很诚实地注明：这只是借了闵可夫斯基度规的灵感，跟广义相对论关系不大。

```mermaid
flowchart TD
    A["翻开一个格子"] --> B["得到一个模长，比如 √2"]
    B --> C["列出候选组合：四种雷怎样加和出这个模长"]
    C --> D["用相邻格子的信息联立消元"]
    D --> E{"收敛出确定解？"}
    E -->|是| F["插旗或触发展开"]
    E -->|否| G["试探性插旗，赌一把抵消对"]
    G --> H{"踩雷？"}
    H -->|是| K["结算：全部揭晓标对与标错"]
    H -->|否| F
    F --> I{"展开判定通过？"}
    I -->|通过| J["连锁翻开，地图缩小"]
    I -->|不通过| C
    J --> L{"还剩格子？"}
    L -->|是| A
    L -->|否| K
    K --> M["带着新学的数值组合再来一局"]
    M --> A
```

## 为什么上头

**熟悉的外壳，一条新公理。** 全人类都会扫雷，学习成本趋近于零；但经典扫雷几十年沉淀的定式——1-2-1、1-2-2-1——在新规则下全部作废。老玩家被拉回新手村，手里却还握着“旗该插哪”的肌肉记忆。这种“我明明会，又好像不会”的错位感，是最强的前五分钟留存。

**从计数约束到模长约束，推理深度换挡。** 经典扫雷每个数字是一条计数约束，高手的乐趣在于模式识别；复扫雷的每个模长是一条带多解的方程——|z|=√2 在八个格子里有十几种植雷方式。单条信息高度模糊，但相邻两条信息联立就能消元。**模糊本身就是难度曲线**：你看着一个 √2 迟迟不敢下手，直到旁边翻开一个 3，所有候选组合瞬间只剩一种——那一下的“啊哈”，正是解谜游戏最值钱的多巴胺。

**试探机制制造心跳。** 因为存在抵消对，有时全场信息用尽仍无确定解，规则反而鼓励你“插旗试探展开”。按下去之前你知道这是 gamble，展开成功等于白赚一片信息，失败就是爆雷。数学游戏里做出了俄罗斯轮盘的手感。

**结局审计是最硬的“再来一局”。** 大多数游戏输了给你一个分数，复扫雷输了给你一份**验尸报告**：你每一面旗的对错都摊在桌上。你死之前以为的“运气不好”，看完复盘往往变成“原来那一格我推得出来”。不甘心让人弃坑，“我下一把能推对”才让人重开。这个零成本的复盘机制，是整个仓库里最值得抄的设计。

**收集欲藏在数值表里。** 24 种模长像 24 个音符，√5 出现在角落意味着什么、2√10 有多罕见，都是可以积累的私人模式库。作者连显示 i 用的伪数码管素材都亲手画了——这种细节暴露了作者自己玩进去了。

## 技术拆解

**Zig + Win32，零依赖的原生路线。** 没有引擎、没有框架、没有 Electron，整个程序是对着 Win32 API 直接写的，编译出来一个独立 exe。对一个纯 2D 网格回合制游戏，这是最诚实的选型：渲染就是画格子，交互就是鼠标消息，复杂度全留给游戏逻辑本身。Zig 在这里的角色接近“更好的 C”——作者要的显然是可控和编译产物干净，而不是生态。

**规则即数学，移植成本极低。** 整个游戏的核心是一张可枚举的模长查找表（8 邻组合是有限的）加一组纯比较判定，没有浮点累积误差（√ 只是显示层格式化）、没有随机模拟、没有帧率敏感逻辑。这意味着它极其好测试、极其好移植——想搬到网页、搬到手机、搬进任何语言，核心逻辑几百行就能带走。对想“简化复刻”的读者，这是天花板级的友好。

**素材授权是这个仓库隐藏的亮点。** 作者直接沿用了微软原版扫雷的像素素材（原版作者 Robert Donner、Curt Johnson），同时新增的 16 个显示值、四种旗帜、i 单位数码管、人脸按钮全部自绘。关键操作是：README 和单独的《素材说明》明确切割了权利——代码走 GPL-3.0，微软素材不在授权范围内并注明归属。任何人想复刻/魔改经典游戏，这份授权切分就是模板：**玩法规则不受版权保护，美术素材受**。

**工程习惯在线。** 仓库带 CI 工作流目录，“正式版”目录直接跟代码走，文档分工清楚（README 讲玩法、素材说明讲版权）。37 个 commit 撑起一个完整可玩的产品，节奏很像“一周一个里程碑”的个人项目范本。

## 变现观察

先说这个仓库本身：**没有任何变现痕迹**。免费、GPL、无广告位、无内购、无赞助入口，连在线 Demo 都没挂——这是一个手艺和作品导向的仓库，作者要的可能是“被看见”。

但它的品类参照系很硬：

- **Steam 逻辑解谜有稳定的付费小市场。** Hexcells 三部曲（一人工作室）销量几十万级，Tametsi（一人开发）靠“每一关可证无猜”的口碑常年好评。这类游戏定价 3~8 美元，卖的不是内容量，是**确定可解的推理体验**——而复扫雷的数学内核天然适合做“每局可推”的保证。
- **网页每日挑战是被验证过的增长机器。** Wordle 之后，“每日一题 + streak + 分享文案”几乎成了标准玩法基建，成本是一次 GitHub Pages 托管，变现走网页广告或赞助。
- **教育是冷门但真实的第三条路。** 复数模长、闵可夫斯基度规——这正是高中复数和大学先修物理的活教具。能让高中生主动算模长的游戏，在教师和家长市场里有付费场景。
- 顺带一提：扫雷玩法本身是公有领域财富，零版权成本入场；但别做套壳加广告的红海复刻——这个仓库示范的差异化恰恰是**改规则**，而不是换皮。

## 给我的灵感

**1. 网页版 + 每日挑战（MVP 1~2 周）。** 用 TypeScript + Canvas 重写核心（查表 + 判定，几百行的事），托管在 GitHub Pages。每日生成一块“无猜板子”（公开资料里扫雷无猜生成算法很成熟），配 streak 计数和分享文本卡。变现：网页广告打底，把“揭示一个抵消对”“校验一面旗”做成提示道具内购。这是投入产出比最高的一条路。

**2. 六边形 / 三维复扫雷（周末级实验）。** 换网格是这类游戏的天然扩展：六边形 6 邻格会让模长集合缩小、手机上更好点按，适合做轻量移动版；3D 体素版 26 邻格则让数值表爆炸，反而是硬核社区的卖点。变现：itch.io 付费下载，1~3 美元价位在解谜区跑得通，几乎零上架成本。

**3. 推理复盘器（把钩子做成产品）。** 用求解器对每局生成“哪一格里时存在确定解”，结局回放你的推理路径，高亮你漏掉的那步。这是把原作的审计机制升级成独立卖点的做法，配上计时榜和无猜测模式，足够撑一个 Steam 抢先体验的正版化产品——记得先联系原作者，或者按玩法无版权的边界自己做一套。定价参考同类：3.99 美元起步。

## 上手

- 仓库：https://github.com/Yueqing-Chen/complexweeper-A-minesweeper-game
- GPL-3.0（代码），Zig 编译，零第三方依赖；仓库“正式版”目录带成品，clone 即玩（据仓库页面）
- 没有在线 Demo，Windows 用户成本最低；想研究规则，README 就是完整的规则书

经典游戏的改造定理在这个仓库里写得明明白白：好点子未必是往游戏里加东西，有时候只是把一条公理换掉——然后把剩下的一百条规则，让数学替你重新推一遍。

> [!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)
