WorkBuddy × CloudBase 实战:从零构建中国象棋双人对战应用
一篇真正"跑通了"的教程,记录了我们用 WorkBuddy + CloudBase 从零搭建一个完整应用的全过程 —— 包括那些踩过的坑和总结的规则。
一、背景
我们做了什么?
用 WorkBuddy 配合 CloudBase(腾讯云开发),半小时内从零搭建了一个中国象棋双人对战 Web 应用,包含:
- 手机号验证码登录
- 房间创建/加入/分享
- 完整象棋规则引擎
- 实时对局同步(NoSQL watch)
- 部署到独立子域名
技术栈
| 层 | 选型 |
|---|---|
| 前端 | Vite + React + TypeScript |
| 认证 | CloudBase 手机号验证码登录 |
| 数据库 | CloudBase NoSQL 文档数据库 |
| 部署 | CloudBase manageApps → 独立子域名 |
| AI 工具链 | WorkBuddy + CloudBase(28 个工具) |
二、基建:启用 CloudBase
在 WorkBuddy 对话中输入 /cloudbase 选择 CloudBase Skill,或在对话界面点击左下角 连接器 按钮启用 CloudBase 连接器(参阅配置指南)。
启用后,WorkBuddy 会自动完成以下流程:
- 通过
auth工具完成设备码登录 - 绑定目标环境
- 环境中后续所有操作通过 CloudBase 工具执行
三、应用架构
3.1 数据模型
rooms 集合(NoSQL)
├── roomId // 6 位房间码(大写字母+数字)
├── creatorId // 创建者 uid
├── player1Id // 红方 uid
├── player2Id // 黑方 uid(加入后填充)
├── status // waiting → playing → finished
├── boardState // 序列化棋盘
├── currentTurn // red | black
└── winner // red | black | null
棋盘序列化格式:
RK-AK-EK-HK-CK-AK-EK-HK-RK|--|--B--P-B--|S--S--S--S--S|...
每格 2 字符:RK=红帅, BK=黑将, RA=红仕, B--=空位。
3.2 组件结构
App
├── LoginPage → 手机号输入 → 验证码 → 登录
├── HomePage → 创建房间 / 加入房间
└── GamePage
├── PlayerInfo → 红方/黑方身份标识
├── ChessBoard → SVG 网格 + CSS 棋子
└── ShareBtn → 分享房间给好友
3.3 对局同步机制
关键:不用 WebSocket,直接利用 CloudBase NoSQL 的 watch() API 做实时同步。
Player A 走棋:
1. 本地 GameEngine.makeMove()
2. updateGameState() → 写入数据库
Player B 同步:
1. watchRoom() 收到 snapshot
2. boardState 变化 → deserializeBoard()
3. engine.loadState() → UI 更新