- 新增双升(DoubleUp)完整实现:引擎 double-up-core.ts / double-up.ts、牌桌 UI DoubleUpBoard.tsx、单测与 E2E - 甩牌跟牌修复:validateFollow 新增 mixed 分支,甩牌后其他家可正常跟单张同花色牌 - start.sh:PORT=5173 单端口一键启动(Koa 同时 serve 页面+/api+/socket.io),浏览器直连无需 Vite 代理 - 玩家名 server 权威化(join 时写入 G.playerNames);LobbyRoomList 支持 fixedSeats(双升固定 4 人) - 文档:新增 dev-log/14、更新 dev-log README 索引与进度、更新根 README 启动/部署说明 - .gitignore 忽略根目录 data/*.db 运行时 SQLite
3.4 KiB
3.4 KiB
开发日志 · Dev Log
按时间 + 主题切的开发过程记录。每篇文档遵循同一结构:
做什么(用户要求)→ 遇到什么问题 → 怎么解决
索引
| # | 文档 | 主题 |
|---|---|---|
| 01 | 初始需求与架构设计 | TTS-like 桌游模拟器的目标、约束、决策 |
| 02 | UI 原语 API 设计 | <Board> <Zone> <Card> <Token> <ActionButton> 接口规范 |
| 03 | 项目骨架搭建 | pnpm workspace + Vite + Tauri 初始结构 |
| 04 | UI 原语实现 | Board/Zone/Card 联通 game.ui schema |
| 05 | 拖拽 + 落点判定 | HTML5 drag-and-drop + 多选 + 验证 |
| 06 | 三个示例游戏 | DragTest / War / Mill (九子棋) |
| 07 | Bug 修复 · 第一轮 | War 牌堆不可见、DragTest 桌→桌重复加卡 |
| 08 | 本地局域网联机 | tsx server + SocketIO + 2 客户端实测 |
| 09 | 房间列表 UI + 完整测试 | LobbyRoomList + E2E/unit/Docker 修复 |
| 10 | 部署后修复:LAN CORS + join 409 | CORS 覆盖 LAN、joinRoom refresh、tie 容忍测试 |
| 11 | 用户测试反馈 · 第一轮 | connecting 卡死、UI 重复入口、无法自检、防误删缺失 |
| 12 | 统一端口 + 玩家命名系统 | /api 前缀、vite proxy、静态 serve、名字显示/改名 |
| 13 | 德州扑克(Holdem)游戏 | 引擎 + 评估器 + 牌桌 UI + 可变人数大厅 + E2E |
| 14 | 双升游戏 + 单端口启动/部署 | DoubleUp 引擎+UI+联机、start.sh(PORT=5173)、玩家名 server 权威、固定人数大厅 |
| — | 踩坑总结 | 所有踩过的坑(按现象分类) |
| — | 决策记录 | 已锁定决策 + 日期 |
仓库结构
docs/
├── dev-log/ ← 本目录
│ ├── README.md
│ ├── 01-initial-scope-and-design.md
│ ├── 02-ui-primitives-api-design.md
│ ├── 03-monorepo-scaffold.md
│ ├── 04-ui-primitive-impl.md
│ ├── 05-drag-and-drop.md
│ ├── 06-three-games.md
│ ├── 07-bugfixes-round-1.md
│ ├── 08-local-lan-multiplayer.md
│ ├── 09-room-list-ui-and-complete-tests.md
│ ├── 10-cors-and-join-bugs.md
│ ├── 11-user-test-feedback-round-1.md
│ ├── 12-unified-port-and-player-names.md
│ ├── 13-holdem-game.md
│ ├── 14-double-up-game.md
│ ├── lessons-learned.md
│ └── decisions.md
├── impl.md 整体实现规划(高层)
└── ui-primitives.md UI 原语 API 详细规范
进度总览
- 架构 + 骨架:✅ 完成
- 本地 2D MVP(拖拽 + 3 个游戏):✅ 完成
- 联机:✅ Phase 2(创建房间 + 房间列表 + E2E/unit 覆盖)
- 游戏生态:✅ Holdem(德州扑克,2-9 人,含隐藏信息 + 边池);✅ DoubleUp(双升,固定 4 人,拖拉机/甩牌/抠底)
- 桌面壳(Tauri):⏳ Phase 4(待启动)
- 脚本化层(玩家自写游戏):⏳ Phase 3(待启动)