案例设计:先把合成小游戏说完整
贯穿案例是一款竖屏、4×4 网格的休闲合成小游戏。玩家把两个同等级物品拖到一起,目标格得到高一级物品,源格清空,分数增加。这个案例用于串起系统,不代表完整商业产品。
第一版的规则
| 问题 | 本案例的约定 |
|---|---|
| 空格怎样表示 | 等级 0;物品等级从 1 开始 |
| 什么可以合成 | 两个不同格子、相同非零等级,且低于最高等级 |
| 合成结果放哪里 | 目标格;源格变空 |
| 不同等级或越界 | 状态不变,视图返回原位 |
| 分数怎样增加 | 按合成后的等级查固定规则;示例代码用固定 10 分简化 |
| 动画期间怎么办 | 第一版锁定操作,结束或取消都能释放 |
| 怎样恢复 | 从业务存档重建棋盘与分数 |
核心案例不默认允许把物品移动到空格。 如果你需要这种行为,把它定义为另一种合法命令,并补充测试。不要让 AI 在实现拖拽时悄悄替你选择玩法。
按职责拆成四部分
规则不依赖屏幕位置,视图不凭图片猜等级,平台服务不直接偷偷改棋盘。这样的边界足够清晰,也不需要复杂架构框架。
一次完整交互

开始时记录源格,拖动期间只改变预览位置。放下时命中目标格并提交命令。合法就更新状态、刷新视图并标记存档;不合法则原位恢复,分数不变。
这个顺序可以避免“玩家还没松手,存档已经变了”或“动画被打断,奖励就丢了”的问题。
分阶段让 AI 实现
- 规则阶段:只做纯 C# 棋盘和操作结果,覆盖合法与非法输入。
- 显示阶段:根据状态创建物品视图,让同一状态可以重复刷新。
- 交互阶段:把拖拽转换成源格与目标格,暂不做复杂特效。
- 反馈阶段:加入弹出、音效、分数变化,补齐中断与清理。
- 持久化阶段:保存、恢复、损坏回退和版本迁移。
- 平台阶段:接入广告、登录与排行,分别验证失败路径。
每阶段都保留一个最小可验证结果。出现错误时能回到上一阶段检查,而不是在一大块生成代码里寻找原因。
场景结构怎样说给 AI
MergeScene
├─ Bootstrap 初始化、存档加载与流程连接
├─ EventSystem 与输入方案匹配的输入模块
└─ Canvas
└─ SafeAreaRoot
├─ Header 分数、设置
├─ BoardRoot 16 个格子与物品视图
├─ DragLayer 拖动中的显示层
└─ OverlayRoot 暂停、提示、结算
这是建议结构,不是必须照抄的框架。关键是说明对象职责、引用来源和坐标约定。下一章:合成规则与可测试状态。