<!-- title: 《monopoly》收租这门生意，他免费教了十二年 -->
<!-- domain: games -->
<!-- repo: intrepidcoder/monopoly -->

大富翁这个玩法，在游戏圈里有个外号叫“印钞机品类”——掷骰子、买地、收租，规则老到掉牙，但每隔几年就有换皮产品重新杀进畅销榜。规则本身毫无秘密，秘密全在实现和包装上。今天要拆的这个仓库，把“实现”这一半免费做完了：**intrepidcoder/monopoly**，一套纯 JavaScript 写的完整大富翁，支持 2-8 人混战，还留了一个 AI 对手插槽。作者从 2013 年开源到现在，一枚广告都没挂过。

## 仓库档案

- **仓库**：[intrepidcoder/monopoly](https://github.com/intrepidcoder/monopoly)
- **Star**：454 ⭐（Fork 256、Watch 22，据仓库页面）
- **语言**：JavaScript + HTML/CSS，零依赖
- **License**：MIT
- **作者**：intrepidcoder，个人账号维护，全仓库共 23 次提交
- **时间线**：2013 年 8 月创建，最近一次代码推送在 2024 年 1 月——十二年里就 23 个 commit，却持续有人在 star 和 fork
- **在线试玩**：[intrepidcoder.com/projects/monopoly](https://www.intrepidcoder.com/projects/monopoly/)

有个细节值得注意：它的 fork 数高达 256，接近 star 数的六成。正常仓库 fork 远低于 star，这个比例说明大多数人拿它不是收藏，是真拉下来改——这对想找“可抄底子”的人来说，本身就是一份口碑背书。

## 这游戏是什么

一句话：**浏览器里的大富翁完整版**。8 个位置随便摆，每个位置可以是真人，也可以勾选 AI（Test），棋子颜色 16 种任选，开局每人 $1500，然后就是熟悉的一切——掷骰、买地、拍卖、建房、抵押、交易、进监狱、保释，直到只剩一人现金为正。

核心循环长这样：

```mermaid
flowchart TD
    A[掷骰移动] --> B{落在哪种格子}
    B -->|无主地| C[决策: 买下或放弃]
    C -->|放弃| D[进入拍卖<br>全员可出价]
    C -->|买下| E[地产入库 现金减少]
    B -->|他人地产| F[交租 现金转移]
    B -->|机会命运| G[随机事件]
    E --> H{下一回合}
    F --> H
    D --> H
    G --> H
    E --> I[集齐同色组<br>租金翻倍可建房]
    I --> J[对手现金流枯竭<br>抵押还债走向破产]
    J --> K[一人独活 本局结束]
    K -->|换AI策略或换版图| A
```

驱动“再来一局”的有三层：一是**版图易主的可视性**——地图格子颜色逐渐被自己染满，进度感写在脸上；二是**现金流的心理压**——你看着对手余额一点点被租金磨穿，比看血条掉得还有实感；三是**每局都是新随机**——骰子决定落点，同样的人同样的策略，两局走向完全不同。

## 为什么上头

大富翁被抄了一百年还没被抄死，是因为它的机制配比极其精妙。对着这个仓库的源码，能把这些机制一个个指出来：

**第一，即时反馈做到了账面级。** 演示页面顶部常驻所有玩家的余额，任何一次收租、付租、成交，数字当场变动。即时反馈是上头的地基，而回合制游戏最容易把反馈拖到回合结算——这个游戏没有结算画面，每一笔都是实时到账。

**第二，收集欲绑定复利曲线。** 单块地的租金从 $12 起步，集齐同色组租金翻倍，每加一栋房租金跳一档，盖上酒店直接到 $900——75 倍的梯度全靠“收集+升级”堆出来。更狠的是视觉绑定：格子变成你的颜色、房子图标一点点铺满，进度感不用数字告诉你。

**第三，拍卖和交易制造了“人的变量”。** 大部分电子棋盘游戏只做“轮到你→做选择”，大富翁的灵魂在人与人之间：放弃购买触发全员拍卖，你多出的每一块钱出价都是心理战；交易系统允许拿地换地、拿地换钱、拿地换出狱卡。源码里的 AI 甚至会**还价**——你开价不合适，它回你一个新 Trade 对象。这种“对方在跟我斗心眼”的感觉，是单机游戏稀缺的社交拟真。

**第四，淘汰机制给了终局压力。** 现金流断裂不是立即判负，而是先抵押、再卖房、最后出局——这套缓冲设计让劣势局有翻盘幻想，让优势局有围猎快感。源码里 AI 的 `payDebt` 函数从 39 号格往 0 号格逆序抵押，先割高价值资产保命，策略感全是规则逼出来的。

**第五，运气和策略的黄金配比。** 骰子管落点（运气），买地、建房、交易管走向（策略），出狱卡管时机（心机）。纯运气游戏留不住人，纯策略游戏累人，大富翁卡在中间——连“蹲监狱”都是策略：AI 的 `postBail` 钩子里写着，第三次入狱回合才肯掏出狱卡，前面两回合白蹲反而安全。

## 技术拆解

整个游戏就 7 个文件：`index.html`、`styles.css`、`monopoly.js`（规则引擎）、`ai.js`（AI 示范）、`classicedition.js` 和 `newyorkcityedition.js`（两套版图）、一个 `images` 目录。双击 index.html 就能开玩，没有构建工具，没有框架，没有一行依赖。

**规则引擎是全局状态流。** 40 个格子是一个 `square` 数组，玩家是 `player` 数组，买地、建房、抵押全是全局函数直接改状态。这是 2013 年的写法，放到今天不够“工程化”，但对二开反而是好事——没有中间层，改哪看哪，一个周末读完整个引擎。

**版图即配置文件。** 经典版和纽约版是两个独立 js 文件，各自描述 40 个格子的名字、价格、租金梯度。想做一个“北京版”或“你的城市版”，不需要动引擎一行代码，新写一个版图数组文件就行。这是它 fork 多的直接原因——换皮成本约等于零。

**ai.js 才是全仓库最值钱的部分。** 它把“回合制 AI 需要做哪些决策”抽象成了 6 个钩子，你实现这 6 个函数，就能造一个对手插进牌桌：

| 钩子 | 触发时机 | 示范 AI 的策略 |
|---|---|---|
| `buyProperty` | 踩到无主地 | 现金 > 地价+50 就买 |
| `acceptTrade` | 收到交易提议 | 给全部筹码估值，>25 接受，否则可能还价 |
| `beforeTurn` | 自己回合开始 | 集齐同色组且钱够就建房，顺路赎回抵押地 |
| `onLand` | 每次落格 | 一次性发起“公用事业换铁路”的交易 |
| `postBail` | 蹲监狱期间 | 第三回合才用出狱卡 |
| `bid` | 拍卖中 | 加价 10~30，超过地价 1.5 倍或现金告急就退出 |

作者在注释里写得很诚实：“这个 AI 的目的不是做逼真的对手，而是示范一个合法的 AI 玩家长什么样。”——换句话说，它交付的不是 AI，是 **AI 接口约定**。这份约定是整个仓库复用价值最高的一段设计：任何棋盘类、格子系统类玩法，都可以照抄这套钩子划分。

**短板也很明显：没有存档。** 页面上原话警告“刷新此页面或离开可能导致你的游戏无预警结束”。十二年没补的功能，就是留给你的机会清单。

## 变现观察

先说结论：**这个仓库本身零变现痕迹**。MIT 协议、演示页无广告、没有赞助入口、作者甚至没在 README 里放一行自我介绍。它更像一个作品集项目——而这恰恰是个人开发者变现的第一课：作品集项目换来的影响力和 offer，是隐性收入，454 颗星持续十二年的进账，比一次性的广告费值钱。

但这个**品类**的变现路径是被反复验证过的：

- **微信小游戏**：棋牌桌游是小游戏平台的流量大户，激励视频广告天然嵌得进去——“看广告免一次租金”“看广告提前出狱”，和大富翁机制的缝合零违和；
- **网页广告**：H5 对战页面挂广告位，靠“公司摸鱼棋盘”类社交传播拉量；
- **B 端定制**：财商教育、银行活动、公司年会，都在找“能定制格子内容的大富翁”，这是小团队接单最快的口子；
- **itch.io / Steam**：换皮做美术升级，走付费下载或自由定价打赏。

一个必须提的风险：**Monopoly 和“大富翁”都是注册商标**。玩法规则本身不受版权保护，你照着做玩法没问题，但商用必须换名字、换美术、换格子文案，不能贴牌。这个仓库 MIT 协议连代码都随便你改，法律风险只在商标和素材层。

## 给我的灵感

**点子一：城市换皮 + 存档 + 单人 AI 局，投微信小游戏。** 用它“版图即配置”的结构，把 40 个格子换成你家城市的地标、梗店、网红路；补一个 localStorage 存档（它最大的短板）；开局默认 3 个 AI 对手，主打通勤碎片时间单机局。变现走激励视频（免租、免抵押、换骰子）。规则引擎是现成的，你的工作量在美术和版图数据——一到两周 MVP。

**点子二：AI 锦标赛观战间。** 钩子接口天然支持多 AI 同桌——写 8 个性格迥异的 AI（激进买地型、囤现金流型、交易狂魔型），做一个纯观战页面：8 个 AI 自动打完一局，观众看直播、发弹幕、竞猜赢家。它解决的是“想看大富翁但不想亲自玩”的人群，网页挂广告，比赛切片还能反哺引流。一周 MVP，是三个点子里差异化最强的。

**点子三：把钩子开放给玩家，做“写 AI 来下棋”。** 参考它的 ai.js 约定，做一个玩家提交自定义 AI、自动匹配对战的社区站。这是慢生意，起量慢但粘性极高——程序员为了让自己的 AI 赢，会自发传播。适合已经有一份稳定流量的开发者做第二增长曲线。

三个点子共享同一个底座：这份 MIT 的规则引擎加钩子架构。先 fork 下来跑一局，再决定往哪个方向长。

## 上手

- 仓库：https://github.com/intrepidcoder/monopoly （MIT，克隆即用）
- 在线试玩：https://www.intrepidcoder.com/projects/monopoly/ （页面里勾几个 AI (Test) 就能凑一桌，建议先看 AI 怎么蹲监狱、怎么在拍卖里收手，再打开 ai.js 对照源码）

一颗骰子掷了一百年，规则早就公开，公开的规则永远不构成壁垒——壁垒是你往这套循环里装了谁的情怀、谁的钱包、谁的碎片时间。这个仓库把最无聊的那部分（规则实现）免费替你做完了，剩下的部分，恰恰是只有你能做的部分。

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