Files
doucan/README.md
wtz 97e03acbe2 fix: 修复牌型识别、获胜显示、出牌区布局、移动端重连
1. 牌型识别: 新增三带一对、飞机、飞机带单/带对、四带二、四带两对
2. 获胜显示: 先显示最后出牌1秒后再弹出获胜对话框
3. 出牌区布局: 横向排列并换行
4. 移动端重连: 切回前台时自动重连WebSocket
5. 更新文档: README.md和API.md补充新增牌型
2026-02-22 10:00:13 +08:00

114 lines
2.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 斗地主残局版 - 在线对战平台
## 项目简介
斗地主残局版(斗残)是创造性转化自原版斗地主的在线对战游戏。
### 特殊规则
1. **新增牌 - 超人强**: 作为第55张牌是最大单牌可管一切单牌不可组合出
2. **人数灵活**: 最少2人最多10人
3. **发牌规则**: 每人初始5张牌一轮结束后每人摸一张牌
4. **简化牌型**: 三张可成顺子,三张可成炸弹,两对可成连对
5. **无地主**: 不设置地主,上一轮获胜者先出牌
### 牌型说明
| 牌型 | 说明 |
|------|------|
| 单牌 | 任意一张牌 |
| 对子 | 两张相同点数的牌 |
| 顺子 | 三张或以上连续点数的牌不含2和王 |
| 连对 | 两对或以上连续点数的对子不含2和王 |
| 三带一 | 三张相同点数+任意一张 |
| 三带一对 | 三张相同点数+一对 |
| 飞机 | 两个或以上连续的三张不含2和王 |
| 飞机带单 | 飞机+同数量单张 |
| 飞机带对 | 飞机+同数量对子 |
| 四带二 | 四张相同点数+两张单牌 |
| 四带两对 | 四张相同点数+两对 |
| 炸弹 | 三张或以上相同点数的牌 |
| 火箭 | 小王+大王 |
### 牌型大小
超人强 > 大王 > 小王 > 2 > A > K > Q > J > 10 > 9 > 8 > 7 > 6 > 5 > 4 > 3
炸弹可管任何非炸弹牌型,火箭最大。
## 技术栈
- 后端: Go 1.21
- 前端: HTML + CSS + JavaScript
- 通信: WebSocket
- 存储: Redis
- 代理: Nginx
- 部署: Docker Compose
## 项目结构
```
doudizhu-server/
├── app/ # Go后端
│ ├── cmd/main.go # 程序入口
│ ├── internal/
│ │ ├── models/ # 数据模型
│ │ ├── game/ # 游戏逻辑
│ │ ├── handlers/ # HTTP处理器
│ │ ├── redis/ # Redis客户端封装
│ │ └── ws/ # WebSocket处理
│ ├── Dockerfile
│ └── go.mod
├── nginx/
│ ├── nginx.conf # Nginx配置
│ └── html/ # 静态文件
├── compose.yaml
├── README.md
└── API.md
```
## 快速开始
### 部署
```bash
cd doudizhu-server
docker compose up -d --build
```
### 访问
- 本机: http://localhost
- 局域网: http://<服务器IP>
### 游戏流程
1. 输入昵称,创建房间或输入房间号加入
2. 所有玩家点击"准备"
3. 游戏自动开始每人发5张牌
4. 轮流出牌或选择"不出"
5. 一轮结束后每人摸一张牌
6. 先出完所有手牌者获胜
## 开发
### 本地运行
```bash
# 启动Redis (Docker)
docker run -d --name redis -p 6379:6379 redis:7-alpine
# 运行后端
cd doudizhu-server/app
go mod tidy
go run ./cmd
# 另开终端启动nginx或直接访问http://localhost:8080
```
### 构建
```bash
cd doudizhu-server
docker compose build
```