一款基于 Web 的多人在线斗地主游戏。支持创建房间、AI 电脑对手、实时对战。
| 层级 | 技术 |
|---|---|
| 前端框架 | Next.js (App Router) |
| 语言 | TypeScript |
| 2D 渲染 | Phaser |
| 后端 API | Next.js API Routes + WebSocket |
| ORM | Drizzle ORM |
| 数据库 | PostgreSQL |
- 经典三人斗地主
- 54 张牌(含大小王),每人 17 张,3 张底牌归地主
- 叫地主 → 出牌 → 判定胜负
- 支持:单张、对子、三带一/二、顺子、连对、飞机、炸弹、火箭等标准牌型
alpha-game-poker/
├── src/
│ ├── app/ # Next.js 页面
│ │ ├── page.tsx # 首页(大厅)
│ │ ├── room/[id]/ # 房间页面
│ │ └── api/ # API Routes
│ │ ├── room/ # 房间 CRUD
│ │ └── ws/ # WebSocket 处理
│ ├── game/ # 游戏核心逻辑(纯 TS,不依赖框架)
│ │ ├── deck.ts # 牌组:洗牌、发牌
│ │ ├── hand.ts # 牌型识别与比较
│ │ ├── engine.ts # 游戏流程状态机
│ │ ├── ai.ts # AI 出牌策略
│ │ └── types.ts # 类型定义
│ ├── phaser/ # Phaser 场景与渲染
│ │ ├── scenes/ # 游戏场景
│ │ └── objects/ # 牌面、玩家等游戏对象
│ ├── db/ # Drizzle schema & 迁移
│ │ ├── schema.ts
│ │ └── migrate.ts
│ └── lib/ # 工具函数
├── public/ # 静态资源(牌面图片等)
├── drizzle.config.ts
├── package.json
└── tsconfig.json
# 安装依赖
pnpm install
# 配置数据库
cp .env.example .env
# 编辑 .env 填入 PostgreSQL 连接串
# 数据库迁移
pnpm db:migrate
# 启动开发服务器
pnpm dev详见 PLAN.md | Phase 1 计划 | Phase 1 设计文档
MIT