斗地主 fight-the-landlord
基于 Go 语言实现的公平斗地主游戏,主打真随机发牌、无控牌算法,支持联网对战、断线重连与 DouZero 强化学习机器人,可在终端直接游玩。
爱鲜报评分
0 人评分
644
星数
是
中文
Go
主语言
是
活跃
2
贡献者
人工分析
EDITORIAL推荐理由
项目用 Go 从零实现完整斗地主规则与联网对战,代码结构清晰,适合作为网络编程与游戏逻辑的实战参考。它旗帜鲜明地反对商业游戏中的算法控牌,理念纯粹,并接入快手开源的 DouZero 强化学习 AI 作为对手,兼具趣味与技术深度。终端界面 + Docker 一键部署,上手门槛低。
适用场景
- 学习 Go 网络编程与并发模型
- 研究斗地主规则引擎与牌型判定
- 体验强化学习 AI 对战
- 自建私人斗地主服务器与朋友联机
- 终端命令行小游戏娱乐
优点
- 真随机发牌,无控牌算法,公平透明
- 支持联网对战、断线重连与房间匹配
- 集成 DouZero 深度强化学习机器人,策略接近真人
- 提供 Docker Compose 部署与一键安装脚本,开箱即用
- GPL-3.0 开源,代码可审计可二次开发
缺点
- 终端字符界面,无图形化 UI,视觉表现有限
- Windows 10 自带终端不支持彩色 emoji,需换用 Windows Terminal
- 依赖 Redis 与 Python 环境运行 DouZero 机器人,本地开发链路较长
- 玩法单一,仅限斗地主一种牌类游戏
项目简介
斗地主 fight-the-landlord 是一个用 Go 语言从零实现的斗地主游戏,主打「无控牌、真公平」。作者在项目中明确表达了对某些商业斗地主游戏算法操控牌局、诱导充值行为的不满,因此希望用开源方式还原一个纯粹的斗地主体验:每局洗牌完全随机,匹配不看胜率与段位,代码全部公开可审计。
核心特性
- 真随机发牌:每局洗牌完全随机,不存在任何控牌或平衡算法。
- 公平匹配:不考虑胜率、段位、游戏时长,纯随机或房间匹配。
- 联网对战:支持多人在线对局,并具备断线重连能力。
- 智能机器人:接入快手开源的 DouZero 深度强化学习 AI,出牌策略比常见 LLM 更合理,能主动组合复杂牌型、农民间配合、精准顶牌拆牌。
- 无内购无广告:纯粹的技巧与运气博弈。
快速开始
客户端安装
macOS / Linux 可通过安装脚本一键安装:
curl -fsSL https://raw.githubusercontent.com/palemoky/fight-the-landlord/main/install.sh | bash
Windows 用户可使用 PowerShell:
irm https://raw.githubusercontent.com/palemoky/fight-the-landlord/main/install.ps1 | iex
安装完成后运行 ddz 即可启动客户端。
Windows 10 用户注意:界面使用 emoji 图标,传统 cmd / PowerShell 窗口(conhost)渲染异常,建议改用 Windows Terminal。
服务端部署
推荐使用 Docker Compose:
mkdir fight-the-landlord && cd fight-the-landlord
curl -fsSL https://raw.githubusercontent.com/palemoky/fight-the-landlord/main/docker-compose.yml -o docker-compose.yml
curl -fsSL https://raw.githubusercontent.com/palemoky/fight-the-landlord/main/.env.example -o .env
docker compose up -d
本地开发
需要先启动 Redis,再依次运行 DouZero 机器人、服务端与客户端:
redis-server
cd douzero && uv sync && uv run python server.py
go run ./cmd/server
go run ./cmd/client
游戏规则与操作
规则与常见斗地主一致:叫地主后,两位农民配合击败地主,地主则阻击农民,先出完手牌的一方获胜。支持单张、对子、三带一、顺子、连对、飞机、四带二、炸弹、王炸等完整牌型。
常用按键(不区分大小写):
| 按键 | 功能 |
|---|---|
| M | 开关音乐(默认静音) |
| C | 开关记牌器(默认关闭) |
| P | Pass |
| H | 帮助 |
| B | 小王 |
| R | 大王 |
| Esc | 返回上一页 |
适用人群
适合想学习 Go 网络编程与并发模型的开发者、对斗地主规则引擎感兴趣的人,以及希望自建私人服务器与朋友联机、或体验强化学习 AI 对战的玩家。
评论
- 暂无评论,来写第一条吧。