Files
e2hang 8d5fb3c511 feat(mahjong): 立直麻将(四麻/三麻,半庄战,雀魂规则)
- engine/tiles: 34 种牌、四麻 136/三麻 108(去 2m~8m)、赤 5(3/2 枚)、宝牌指示映射、排序与计数
- engine/yaku: 和牌分解(标准/七对/国士)+ 全役种(含双倍役满、累计役满)+ 符计算 + 番符→点数(满贯封顶、不采用切上满贯、三麻自摸损)+ 听牌/振听/食替
- engine/game: boardgame.io Game(阶段机 + 摸打/立直/鸣牌/和了/流局 moves + 鸣牌窗口“荣>碰/杠>吃/头跳” + playerView 隐藏 + 连庄/进庄/击飞/西入/半庄终局)
- ui: 新增 MahjongBoard(立式麻将桌:手牌/牌河/副露/宝牌/剩余张数/点数/鸣牌倒计时)
- 注册: server 两数组 + App.tsx GAMES/GAME_ORDER/GameKey/本地+联机 View(maxSeats=4, seatChoices=[3,4])
- docs: docs/mahjong/{00-rules,01-implementation-plan}.md + dev-log 15;CODEBUDDY.md 游戏清单更新
- 测试: mahjong-tiles/yaku/game 共 59 条;engine 全量 310 通过;web tsc+vite build、server tsc 通过
2026-10-03 12:43:51 +08:00
..

开发日志 · 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 权威、固定人数大厅
15 立直麻将游戏 Mahjong 引擎(牌具/全役种/符点)+ 鸣牌窗口 + 麻将桌 UI + 三麻/半庄
— 踩坑总结 所有踩过的坑(按现象分类)
— 决策记录 已锁定决策 + 日期

仓库结构

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
│   ├── 15-mahjong-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 人,拖拉机/甩牌/抠底);✅ Bridge(桥牌,固定 4 人);✅ Mahjong(立直麻将,四麻/三麻,半庄战,雀魂规则)
  • 桌面壳(Tauri):⏳ Phase 4(待启动)
  • 脚本化层(玩家自写游戏):⏳ Phase 3(待启动)