Files
doucan/README.md
2026-02-19 21:18:12 +08:00

102 lines
2.4 KiB
Markdown
Raw 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 > A > K > Q > J > 10 > 9 > 8 > 7 > 6 > 5 > 4 > 3
炸弹可管任何非炸弹牌型,火箭最大。
## 技术栈
- 后端: Go 1.21
- 前端: HTML + CSS + JavaScript
- 通信: WebSocket
- 代理: Nginx
- 部署: Docker Compose
## 项目结构
```
doudizhu-server/
├── app/ # Go后端
│ ├── cmd/main.go # 程序入口
│ ├── internal/
│ │ ├── models/ # 数据模型
│ │ ├── game/ # 游戏逻辑
│ │ ├── handlers/ # HTTP处理器
│ │ └── 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
cd doudizhu-server/app
go mod tidy
go run ./cmd
# 另开终端启动nginx或直接访问http://localhost:8080
```
### 构建
```bash
cd doudizhu-server
docker compose build
```