局域网斗地主小游戏(摸鱼神器)

最近写了一个轻量级的局域网斗地主小游戏。它的目标很简单:不需要数据库、不需要账号系统、不需要复杂部署,只要一台电脑启动服务,局域网里的其他设备打开链接就能一起玩斗地主。
项目地址:https://github.com/summer581/ddz-html

  1. 项目截图
    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 或更新版本后就可以直接运行。

这个项目不算复杂,但我觉得它挺适合作为一个小型网页游戏练手项目:有前端交互、有实时通信、有状态机、有规则判断,也有一点多人联机的味道。

posted @ 2026-07-24 16:43  桃风  阅读(4)  评论(0)    收藏  举报