局域网斗地主小游戏(摸鱼神器)
最近写了一个轻量级的局域网斗地主小游戏。它的目标很简单:不需要数据库、不需要账号系统、不需要复杂部署,只要一台电脑启动服务,局域网里的其他设备打开链接就能一起玩斗地主。
项目地址:https://github.com/summer581/ddz-html
- 项目截图
![image-20260723200320082]()
一开始只是想做一个能在局域网里快速开局的小工具,几个人连到同一个房间就能玩。后来顺手把房间、叫分、出牌、结算、聊天、模拟用户这些流程都补上了,就整理成了一个可以开源分享的小项目。
最有意思的是,同一个房间内任何人按下ESC,所有人都会立刻切换到一张google的加载页面,CTRL+Z切换回来,保证不会被发现,摸鱼利器
它比较适合这些场景:
- 局域网内三个人快速联机
- 没网或不想依赖外部服务时玩一局
- 学习 Node.js 原生 HTTP、SSE 实时同步、前端状态渲染
- 想看一个小型网页游戏从房间到对局的完整流程
当前功能
目前已经实现了:
- 创建 / 加入房间
- 三人斗地主基础流程
- 叫分、出牌、不要、重新开局
- 斗地主常见牌型判断
- 地主、农民结算
- 房间内聊天气泡
- 局域网访问地址提示
- 两个模拟用户,方便一个人测试开局和流程
- ESC 隐藏页面,Ctrl+Z 只恢复自己的页面
模拟用户是我后来加的一个调试功能。一个真人进入房间后,可以点击“添加模拟用户”,系统会补齐两名模拟玩家,然后就可以直接开始对局。模拟用户会自动叫分、自动出牌或不要,主要用于测试游戏流程。
技术栈
项目尽量保持简单:
- 后端:Node.js 原生
http - 前端:HTML / CSS / JavaScript
- 实时同步:Server-Sent Events
- 数据存储:内存房间状态
- 第三方依赖:无
也就是说,安装 Node.js 18 或更新版本后就可以直接运行。
这个项目不算复杂,但我觉得它挺适合作为一个小型网页游戏练手项目:有前端交互、有实时通信、有状态机、有规则判断,也有一点多人联机的味道。

浙公网安备 33010602011771号