初始化斗地主残局版项目

This commit is contained in:
wtz
2026-02-19 21:18:12 +08:00
commit 13d2b0e1dc
18 changed files with 2259 additions and 0 deletions

101
README.md Normal file
View File

@@ -0,0 +1,101 @@
# 斗地主残局版 - 在线对战平台
## 项目简介
斗地主残局版(斗残)是创造性转化自原版斗地主的在线对战游戏。
### 特殊规则
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
```