Files
AICODE2026/3-lessons/AICODE-06/AICODE-06课程大纲.md
Rocky 1c5e72676b feat: AICODE-06 春季后半 7 课大纲 + 第 12 课教案 + prototype 工程产物
## 主要变更

### 课程设计
- 大纲扩展到 18 课(新增第 12-18 课:单词塔防 3D 大项目)
- 引入 AI 三角色协作工作流(Planner / Reviewer / Tester)作为整学期框架
- 每课详化:核心概念 + 误概念预设 + 教学锚点 + 学生产出 + 老师课前要准备

### 第 12 课教案(完整逐字稿)
- 主题:Skills 入门 - 用 game-studio 做跳一跳
- 90 分钟 4C 结构 + 诊断点 + 分支策略
- 5 个误概念预设 + AI 助教提示词模板 + 教师备课指南

### prototype 工程产物(可玩 demo)
- 跳一跳-3d/index.html:Three.js 3D 跳一跳(蓄力 + Web Audio 音效 + PERFECT 命中)
- 单词塔防/game-3d.html:完整 3D 塔防(三阶段 + 商店 + 卡片 + 战斗循环,15 击杀完美胜利)
- 单词塔防/level-editor-3d.html:3D 关卡设计器(Kenney GLB 模型 + localStorage 保存)
- 单词塔防/level-editor.html:2D 关卡设计器(原型保留)
- 单词塔防/index.html:2D 塔防原型(原型保留)

### 工程加固
- .gitignore 加强:排除 token、Kenney 大素材、调试截图、第三方插件、Playwright 临时
- 从 git tracking 移除 scripts/.dingtalk_token.json(本地保留)
- scripts/sync_to_dingtalk.py:OAuth 流程改为手动 authCode 粘贴(避免本地 server 受限)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 23:04:54 +02:00

505 lines
31 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AICODE-06 课程大纲
> AI编程创新课 · 06路线 · 春季学期共18课1-5课衔接 + 6-7俄罗斯方块 + 8-11涂鸦PK + 12-18单词塔防大项目合流时间点待定
> 适用对象小学6年级起点有扣子/低代码经验
---
## 独立阶段代码编程衔接第1-5课
| 课时 | 课程主题 | 学习目标 | 知识点复习 | 知识点新知 |
|:----:|---------|---------|-----------|-----------|
| 1 | 从扣子到代码 | • 理解"扣子智能体"和"AI编程"的本质区别:配置 vs 创造<br>• 掌握 Trae IDE 界面布局和核心操作流程<br>• 理解 Vibe Coding用自然语言驱动AI写代码 | 扣子智能体搭建经验 | Trae IDE 操作、Builder/Chat 模式、Vibe Coding 概念 |
| 2 | SOLO模式初体验 | • 理解三种模式的区别Chat问问题、Builder从零创建、Solo Coder精准修改<br>• 能根据场景选择正确模式<br>• 掌握跟随模式实时观看AI编写代码 | Trae IDE 操作、Builder 模式 | Chat/Builder/Solo Coder 三种模式、跟随模式、模式选择策略 |
| 3 | Solo Coder 迭代深化 | • 掌握内置浏览器预览和元素选择功能<br>• 能用"点击元素→描述修改"的方式精准迭代<br>• 完成从基础版到完善版的多轮迭代 | 三种模式、跟随模式 | 内置浏览器预览、元素选择、点击式精准修改、多轮迭代策略 |
| 4 | 我的个人主页(上) | • 理解"内容先行"原则先想清楚展示什么再让AI做<br>• 掌握板块化设计思维:把页面拆成独立区域<br>• 能在 Trae 中创建自定义智能体并编写系统提示词 | 三种模式、元素选择、迭代 | 内容清单方法、板块化设计、Trae 自定义智能体、占位内容替换 |
| 5 | 我的个人主页(下) | • 能根据同学反馈有针对性地优化页面<br>• 能用自然语言让AI实现交互效果hover、动画、轮播<br>• 能用3分钟路演展示作品并讲解设计思路 | 自定义智能体、内容清单、Solo Coder 迭代 | 交互效果实现、设计一致性、发布前检查、产品路演 |
---
## 项目实战阶段魔幻俄罗斯方块第6-7课
> 面向已完成前5课的 AICODE-06 学员。以俄罗斯方块为载体系统训练工程师思维Plan Mode 先行、需求审核、自动测试、新窗口原则。
| 课时 | 课程主题 | 学习目标 | 核心概念 | 核心工具 |
|:----:|---------|---------|---------|---------|
| 6 | 魔幻俄罗斯方块(上)— Plan Mode 先行 | • 掌握 Plan Mode 三步流程:整理需求 → 需求审核 → 确认需求<br>• 理解需求质量 = 输出质量需求越详细AI 执行越准确<br>• 建立新窗口原则:审核必须在新窗口进行,避免上下文污染<br>• 能独立完成「需求文档 → 审核 → 生成 → 验收 → 结果溯源」完整闭环 | Plan Mode、需求文档、需求审核、结果溯源、新窗口原则、上下文污染 | Kimi 2.5 |
| 7 | 魔幻俄罗斯方块(下)— 魔改升级 + AI 自动测试 | • 掌握增量需求文档:在已有基础上只写新增功能<br>• 理解自动化测试:让 AI 生成测试脚本替代手动验收<br>• 能读懂测试脚本 ✅❌ 结果并溯源修复<br>• 建立「测试通过才算完成」的质量意识,利用测试脚本安全做第二版、第三版 | 自动化测试、测试覆盖、边界条件、增量需求、新窗口原则 | Kimi 2.5 |
**两课核心工作流:**
```
Plan Mode新窗口A整理需求
需求审核新窗口BAI扮演审核工程师
执行生成新窗口CKimi生成代码
手动验收 → 感受手动测试的局限
AI生成测试脚本新窗口D自动测试
测试全部 ✅ → 有了安全网 → 放心做第二版、第三版
```
---
## 项目实战阶段涂鸦PK第8-11课
> 在工程流程Plan Mode + 测试)已内化的基础上,以「自绘角色对战游戏」为载体,训练数据驱动设计、增量需求迭代、和设计决策表达力。
| 课时 | 课程主题 | 学习目标 | 核心能力 | 核心产出 |
|:----:|---------|---------|---------|---------|
| 8 | 涂鸦PK— 画图工具 + 角色设计 | • 能用需求文档驱动生成自己的HTML5画图工具<br>• 能画出两帧角色Spritesheet帧1待机+帧2攻击<br>• 理解20分属性预算制能根据打法定位分配属性 | 拆解力、审美力 | 自制画图工具 + 角色Spritesheet128×64 PNG+ 角色属性JSON |
| 9 | 涂鸦PK— 基础对战系统 | • 能用需求文档描述战斗规则(公式/先手/特技让AI生成完整对战系统<br>• 理解边界情况的重要性:需求文档必须覆盖所有异常情况<br>• 能用AI在新窗口生成测试脚本验证伤害公式和胜负判定 | 拆解力、韧性力 | 可对战的PK系统有血条/四种行动/AI对手+ 测试脚本验证报告 |
| 10 | 涂鸦PK— 动画 + 音效 + 特技 | • 能用自然语言描述动画「感觉」让AI实现Phaser Tween动画<br>• 理解Web Audio API用代码合成音效零外部素材依赖<br>• 掌握增量需求写法:只写新增部分,不重写已验收功能 | 审美力、提问力 | 有完整动画+音效+特技特效的战斗体验版 |
| 11 | 涂鸦PK— 班级锦标赛 | • 理解数据驱动设计加JSON文件=加角色,不改代码<br>• 能用增量需求实现roles角色系统从文件夹读取所有角色<br>• 能用3分钟路演清晰表达设计决策定位+意图+复盘) | 表达力、共创力 | roles系统 + 班级角色锦标赛 + 设计决策路演 |
**四课核心工作流延伸自第6-7课工程流程**
```
需求驱动窗口A整理 → 窗口B审核 → 窗口C执行
测试验证窗口D生成测试脚本 → 验证核心逻辑)
增量迭代(只写新增需求 → 已验收功能不重写)
数据驱动扩展(加文件=加功能 → 代码与数据分离)
```
---
## 项目实战阶段:单词塔防 3D第12-18课
> 春季后半学期主线大项目。**整学期 7 课挂同一个项目**,从概念引入到完整发布。引入 **Subagent**(独立 AI 工人)+ **Skills**AI 专业知识包)两个核心新概念,把"AI 工程方法论"作为教学主轴。学科载体:英语单词(家长心智里的硬需求)+ 3D 塔防(视觉震撼、家长接受度高)。
### 整体架构
```
概念入门(12)→ 工程方法(13)→ 需求驱动(14)→ 功能迭代(15-17)→ 发布(18)
```
### 🌟 AI 三角色协作工作流(七课终极愿景)
整个项目最终要让学生掌握的**核心工程范式** — **管理一支 AI 团队,而不是自己写代码**
整学期通过 7 节课逐步引入并整合 **3 个 AI 角色**:
| 角色 | 职责 | 第几课正式引入 |
|---|---|---|
| 🧑‍💼 **Planner(计划员)** | 把模糊想法变成结构化 PRD(产品需求文档),指挥工作流方向 | 第 14 课正式登场 |
| 🔍 **Reviewer(审核员)** | 在独立上下文里审查代码、PRD、计划,挑出问题 | 第 13 课正式登场 |
| 🧪 **Tester(测试员)** | 用 Playwright 自动测试游戏功能,生成测试报告 | 第 15 课正式登场 |
**关键工程哲学**
-**Subagent 机制**让这 3 个角色拥有**独立上下文窗口**——互不污染、各管一片
- 主 AI 是"项目经理",学生是"老板",**老板只发号施令**,3 个 AI 协作出成果
- 工作流自动化:**写计划 → 审计划 → 编码 → 审代码 → 测试 → 修复 → 再测试**,全程 AI 协作
**为什么必须强调这套工作流**:
- 国产模型(豆包/Kimi/通义/混元)**往往不能一击必胜**,需要审 → 改 → 再审
- 手动复制粘贴换窗口审核**太累、太慢、容易出错**
- 用 Subagent 让审核**自动化** — 学生说一句"召唤 Reviewer 审一下",AI 自己完成
- **这才是真实工程师 2026 年的工作方式**,不是抽象未来,是当下行业范式
### 各课大纲
| 课时 | 课程主题 | 学习目标 | 核心新概念 | 核心产出 |
|:----:|---------|---------|----------|---------|
| 12 | **Skills 入门 — 用 game-studio 做跳一跳** | • 理解 Skills 本质 = 给 AI 装"专业知识包"<br>• 装 game-studio 插件 → 体验"装 vs 不装"代码差异<br>• 用 `phaser-2d-game` skill 让 AI 做出可玩的跳一跳 | **Skills**(食谱类比)+ **game-studio 插件** + **phaser-2d-game skill** | 🎮 可玩的跳一跳 .html小球能跳 + 平台 + 计分)+ 🧠 Skills 概念笔记 |
| 13 | **Subagent + 塔防 v0.1 — 最简能玩版本** | • 理解 Subagent 本质 = **独立上下文**(为什么要"另起炉灶"做审代码)<br>• 召唤 Code Review subagent 审第 12 课跳一跳代码<br>• 用 3D 关卡设计器搭自己的塔防地图<br>• **用刚做的地图 + 1 个塔做出原始塔防 v0.1**(自动开火,可击杀怪) | **Subagent**(独立上下文 / 审代码工程师)+ **Code Review subagent** + 3D 编辑器 + **塔防 v0.11 塔 1 怪类型)** | 🔍 被 review 优化过的跳一跳代码 + 🗺️ 个人 3D 地图 + 🗼 **最简塔防 v0.11 塔自动攻击 + 怪沿路径走 + 击杀计数)**|
| 14 | **项目深度 PRD — 引入"单词当子弹"核心机制** | • 在 v0.1 基础上做**项目级 PRD**(完整塔防设计文档)<br>• **首次引入项目核心机制**:英语单词当塔的子弹/弹药<br>• 召唤 Planner subagent 协助写 PRD,Reviewer 审 PRD | **项目级 PRD** + **Planner subagent 登场** + **单词卡片 = 子弹机制** | 📝 项目 PRD.md覆盖词库系统/卡片机制/塔类型/胜负条件)+ 🎮 塔防 v0.2**塔需要单词卡片才能开火**,核心机制成型)|
| 15 | **塔战斗系统 + Web Audio 音效** | • 实现 3 种塔(单发/冰冻/链式)+ 子弹追踪<br>• 用 Web Audio API 合成战斗音效(零素材)<br>• 用 `game-playtest` skill 自动测试 | **多塔差异化逻辑**、Web Audio 音效合成、playtest skill | 3 种塔完整战斗 + 命中/击杀音效 + 自测报告 |
| 16 | **波次系统 + 难度梯度** | • 数据驱动的波次配置(`waves.json`<br>• 关卡难度递进设计(怪速/血量/数量)<br>• 金币经济与塔商店调优 | **数据驱动设计**、关卡平衡 | 多波次关卡简单→中等→Boss+ 个人 `waves.json` |
| 17 | **词库系统 + 个性化主题** | • 设计 JSON 词库(英语/古诗/历史/地理可选)<br>• 让塔防绑定 TA 的兴趣领域<br>• 兼容老师班级词库 + 学生自定义 | **学生作品 IP 化**、JSON 数据扩展 | 个人词库 JSON30-50 词,自选学科)+ 塔防可玩自家词库 |
| 18 | **🎉 班级发布会 + Electron 打包** | • Electron 打包成 .exe 桌面应用<br>• 加 LICENSE.txtCC0/MIT 协议入门)<br>• 3 分钟路演 + 家长开放日 | **桌面应用打包**(秋季多文件项目入口)、**开源协议初识** | 个人塔防 .exe 可执行文件 + 路演 + 家长开放日 |
### 七课核心工作流
```
Skills + game-studio + 跳一跳(先动手做/12
Subagent + Code Review + 3D 关卡设计(独立上下文/13
PRD 驱动 → AI 实现(需求驱动:14
Web Audio + Playtest skill视听反馈+自测:15
数据驱动波次配置(关卡设计:16
学生自选学科词库IP 化:17
Electron 打包 + 版权协议 + 家长开放日(发布:18
```
### 老师备课资产清单
整套教学需要老师提前准备:
- **3D 编辑器示例地图包**5 张 JSON,覆盖简单/中等/Boss/雪地/峡谷)→ 第 13 课学生导入
- **示例 PRD 模板**(《我的塔防 PRD》样板→ 第 14 课学生参考
- **默认词库**(学校用品 12 词 + 古诗 12 句 + 中国朝代 12 个)→ 第 17 课学生扩展起点
- **波次配置示例**`waves.json` 默认 5 波)→ 第 16 课学生改造
- **Electron 打包脚本**(一键打包 `.exe`)→ 第 18 课直接套用
### 第 12 课:Skills 入门 + 跳一跳 — 具体教法(关键)
**核心理念**:先让学生**看到 AI 真的能做出游戏**的体感(具体),再讲 Skills 是什么(抽象)。**从动手到理论**是更自然的学习路径。
**Skills 怎么教**(分三步走,对比演示法)
1. **演示痛点**(不装 game-studio):
- 让主 AI 写一个"跳一跳"游戏
- 输出:**代码乱、跑不起来、视觉差** — AI 不懂 Phaser 的最佳实践
- 揭秘:"AI 知道一些基础知识,但不懂游戏开发的专业套路"
2. **Skills 救场**(装 game-studio 插件):
- 一行命令装上 game-studio 插件
- 让主 AI 用 `phaser-2d-game` skill 重新做跳一跳
- 输出:**代码整洁、能跑、视觉漂亮** — AI 突然"专业"了
3. **学生 Aha 时刻**:
- "Skills 是给 AI 装的'专业教材',装了 AI 就突然会做这件事了"
- **类比固化**:Skill = 食谱,AI = 厨师,**厨师拿到食谱才能做出菜**
**第 12 课作品**(可玩的跳一跳):
- 学生自己装 game-studio 插件(`/plugin install game-studio`)
- 让 AI 用 `phaser-2d-game` skill 做跳一跳基础版:
- 小球可以按空格跳跃
- 平台从右向左移动
- 落到平台得分,落水/出屏游戏结束
- 学生**个性化定制**:换背景色、改小球形状、加自己设计的音效
- 课程结尾:**互相玩对方的跳一跳**(榜单 / 谁分高)
**为什么跳一跳是 Skills 教学的最强载体**
-**视觉震撼**:小球真的能跳,平台真的能动,分数真的能涨
-**对比强烈**:不装 game-studio 时翻车,装上后秒做 — Skills 价值一目了然
-**小学生秒懂玩法**:微信跳一跳全民共识,不需要讲解
-**课堂可玩**90 分钟末尾可以互玩对方的版本,情感高潮收尾
-**零素材依赖**:纯几何 + Web Audio 音效,不需要 Kenney 等外部资源
**13 课伏笔**:
- 课末预告:"你的跳一跳代码可能不够干净。下节课**我们会召唤另一个 AI(Subagent)来审你的代码** — 它会有独立的"工程师视角",发现你和主 AI 都没看到的问题。"
---
### 第 13 课:Subagent + 塔防 v0.1 — 最简能玩版本
**核心新概念**:
- **Subagent(子智能体)**:AI 召唤的另一个 AI 实例,**有独立上下文窗口**,跟主 AI **互不污染**
- **为什么需要 Subagent**:国产模型不一击必胜,需要审核迭代;手动复制粘贴换窗口太累 → Subagent 自动化
- **Reviewer 角色**正式登场(三角色协作第一步)
- 🔥 **塔防 v0.1**(最简能玩版本):用刚做的地图 + **1 个塔自动开火** + 怪沿路径走 — **学生离开教室时手上有真正的塔防雏形**,不是工具
**误概念预设(老师写教案时必须预防)**:
- M1:"Subagent 是更厉害的 AI" → 错。Subagent **跟主 AI 是同一个模型**,只是独立窗口
- M2:"Subagent 永远比主 AI 强" → 错。Subagent 优势在**独立上下文**,不是能力更强
- M3:"做塔防需要先写完整 PRD" → 错。**13 课先快速跑一个 v0.1 体感版**;真正的项目 PRD 是第 14 课的事
- M4:"塔防 v0.1 只 1 个塔太简单" → 错。**最简能玩 > 复杂不可玩**。先有"动起来的塔防",学生才有继续投入的动力
**教学锚点(Aha 时刻设计)**:
1. **痛点演示**(老师故意手动):
- 拿第 12 课跳一跳代码 → 复制 → 打开新窗口 → 粘贴 → 让 AI 审 → 复制意见 → 回主窗口 → 粘 → 让 AI 改 → 又复制 → 又粘......
- 让学生看 5 分钟"老师在重复复制粘贴"的痛苦表情 → 引出"有更好的办法吗?"
2. **Subagent 救场**:
- 主 AI 里直接说:"召唤一个 Reviewer subagent 来审这段代码"
- 学生看到 subagent **自动审**、**自动给意见**、**主 AI 自动改**——一句话搞定刚才 5 分钟的痛苦
3. **独立上下文演示**:
- 让 subagent 审一段代码后,问主 AI:"刚才 subagent 看了什么?"
- 主 AI 答:"我不知道"——证明**主 AI 看不到 subagent 的对话历史**
- 学生 Aha:"两个 AI 是真的独立的!"
4. 🎯 **塔防 v0.1 闭环演示**(本课情感高潮):
- 学生用 3D 编辑器搭出自己的地图(可以从老师备课包导入再改)
- 用 game-studio 的 three-webgl-game skill 加 1 个塔 + 怪物路径
- **塔自动开火 → 怪被击杀 → 计数器 +1**
- 学生**第一次看到自己的塔防雏形动起来** — 哪怕只有 1 个塔、1 种怪、没有音效、没有 UI
- 这一刻的成就感 **远超"我只做了一张地图"**
**教学节奏建议(90 分钟)**:
- Connect 10':展示第 12 课跳一跳 + 痛点演示(复制粘贴累)
- Construct 65':
- 分段 1 (15'):Subagent 概念演示(独立上下文)+ Code Review subagent 审跳一跳
- 分段 2 (15'):3D 关卡设计器 — 学生搭自己的地图
- 分段 3 (15'):**用 1 个塔 + 怪物路径,跑出最简塔防 v0.1**(主菜)
- 分段 4 (20'):学生定制(改塔的位置 / 改怪物速度 / 加 1 种装饰)
- Contemplate 10':互玩对方塔防 + 抽象总结
- Continue 5':预告 14 课 — 真正写**项目级 PRD** + 引入"单词当子弹"机制
**学生产出**(3 个,逐级递进):
- 🔍 跳一跳代码经过 Code Review subagent 优化(更整洁)
- 🗺️ 用 3D 关卡设计器搭的自己的地图(JSON)
- 🗼 **塔防 v0.1 雏形**(1 塔 + 自动开火 + 怪沿路径 + 击杀计数)
**衔接**:
- ← 第 12 课:你装了 Skill 让 AI 变专业,做出了跳一跳
- → 第 14 课:**塔防 v0.1 太简陋了** — 没有用户输入、没有玩家挑战。**用项目级 PRD 把它变成真正的"单词塔防"** — 召唤 Planner 角色
**老师课前要准备**:
- **塔防 v0.1 代码骨架**(`prototype/单词塔防/game-3d.html` 的简化版 — 只保留:加载地图 + 1 个塔 + 怪沿路径 + 自动开火 + 计数)
- 一段"故意有问题"的跳一跳代码(变量名乱、有 magic number)用作 Code Review 演示对象
- 3D 关卡设计器的 5 张示例地图 JSON(`level-pack/sample-*.json`)
- 简化版"装上塔"的 prompt 模板(给学生用,降低门槛)
---
### 第 14 课:项目深度 PRD — 引入"单词当子弹"核心机制(Planner 登场)
**核心新概念**:
- **项目级 PRD(深度需求文档)**:不再是"做一座塔"的小 PRD,而是**整个塔防项目的完整需求文档**——覆盖词库系统、卡片机制、塔类型、胜负条件、视觉风格
- **Planner subagent**:专门写 PRD 的"AI 产品经理",在独立上下文里**结构化输出**
- 🌟 **项目核心机制**:**单词卡片 = 塔的子弹/弹药** — 学生先输英语单词获得"卡片",卡片装到塔上当弹药。这是单词塔防的灵魂机制
- **PRD → 代码 → Review → 测试 → 迭代** 的完整闭环
**误概念预设**:
- M1:"PRD 太麻烦,直接告诉 AI 就行" → 错。**13 课就是这种'直接告诉'的产物 — 简陋**。项目级要 PRD
- M2:"PRD 越长越好" → 错。**清晰、可执行、覆盖关键边界**比长更重要(老师示范一份精简 PRD 模板)
- M3:"单词当子弹这个机制太怪了" → 错。**这是穹狼塔防的独特机制** — 把"学单词"和"游戏弹药管理"自然耦合,这是教育游戏的关键创新
- M4:"AI 写代码我看不懂" → 错。**你要会读 PRD 验收 AI**,不一定会写代码
**教学锚点**:
1. **回顾 13 课 v0.1 的局限**:
- 老师展示一个 v0.1 给学生玩 30 秒
- 抛问题:"你觉得现在的塔防缺什么?"
- 学生回应:"没玩家操作"、"没意思"、"没有单词怎么叫单词塔防"
- 引出今天:**把灵魂机制加进去 — 单词当子弹**
2. **对比演示 — 无 PRD vs 有 PRD**:
- 演示 A:跟 AI 说"加单词机制" → 输出五花八门(可能是飘字、可能是问答、可能是其他)
- 演示 B:写完整 PRD("玩家输入英文 → 获得卡片 → 卡片装到塔上 → 塔用卡片当子弹开火 → 每张卡 N 发子弹") → AI 输出**精准的卡片机制**
- 学生 Aha:**PRD 越详细,AI 越听话**
3. **Planner subagent 登场**:
- 主 AI 说:"召唤 Planner 帮我写'单词塔防'的完整 PRD"
- Planner 在独立上下文里输出**结构化文档**:词库 schema / 卡片机制 / 塔规格 / 胜负条件
- 学生看到 Planner + Reviewer 协作(Reviewer 审 PRD,挑出"边界情况没覆盖")
- **第一次看到 3 个角色中的 2 个完整协作**(Planner + Reviewer)
4. **PRD → 代码 → 玩**:
- 把 PRD 喂给主 AI,主 AI 在 v0.1 基础上**增量加单词机制**
- 学生玩 v0.2:**输入 "apple" → 卡片出现 → 装到塔 → 塔开火 → 怪死掉**
- 完整核心循环成型
**学生产出**:
- 📝 项目 PRD.md(800-1500 字,覆盖:词库 schema / 卡片机制 / 塔规格 / 胜负 / 视觉)
- 🎮 **塔防 v0.2**(核心机制成型 — 学生输单词 + 卡片当子弹 + 塔自动开火)
**衔接**:
- ← 第 13 课:v0.1 太简陋,**没玩家操作、没单词** — 不是真正的单词塔防
- → 第 15 课:核心机制有了,但**只 1 种塔、没音效、没自动测试**——下节课加战斗多样性 + Tester 登场
**老师课前要准备**:
- **完整 PRD 示例**(老师写好的"单词塔防 PRD" 模板 — 1500 字左右)
- PRD 评分 rubric(覆盖度 / 可执行度 / 边界情况)
- v0.1 代码骨架(13 课的产物,基础上加单词机制)
- Planner subagent 调用 prompt 模板
---
### 第 15 课:战斗系统 + 音效 + Playtest skill(Tester 角色登场)
**核心新概念**:
- **多塔类型差异化**:同一个"开火"接口,3 种塔(单发/冰冻/链式)不同效果
- **Web Audio API**:用代码合成音效(回收涂鸦PK 第 10 课经验)
- **game-playtest skill**:让 AI 用 Playwright 自动测试游戏
- **Tester 角色**正式登场(三角色协作完整)
**误概念预设**:
- M1:"音效要找 mp3 文件下载" → 错。Web Audio 可以**纯代码合成**,零文件依赖
- M2:"测试是写完代码后才做的事" → 错。**写代码前先想测试**——Tester 视角让设计更稳
- M3:"自动测试 = 替代手动玩" → 错。**自动测试覆盖回归**(改一次代码不破坏老功能),手动玩负责"好不好玩"
- M4:"三个塔都用一样的方法" → 错。**多塔差异化** = 设计技能,不是技术问题
**教学锚点**:
1. **战斗回路演示**:
- 主 AI 用 PRD 实现"魔法塔基础版" + "冰冻塔变体(加减速 buff)" + "链式塔变体(命中后链击)"
- 学生看到**同一接口、3 种行为** — 设计模式启蒙
2. **Web Audio 音效合成回收**:
- 回顾涂鸦PK 第 10 课:`playTone(freq, duration, type, volume)`
- 学生为塔加 5 种音效(开火/命中/击杀/冰冻/连击)
- **零文件依赖,纯代码合成**
3. **Tester subagent 登场**:
- 主 AI 说:"召唤 Tester 用 Playwright 测一下战斗系统"
- Tester 在独立上下文里**自动玩游戏**:启动战斗 → 等待 30 秒 → 检查 HP/击杀/塔状态 → 报告
- 学生第一次看到 **3 个 AI 角色完整协作**:Planner(写计划)+ 主 AI(写代码)+ Reviewer(审代码)+ Tester(测试)
**学生产出**:
- ⚔️ 完整战斗系统(3 种塔 + 子弹追踪 + HP 系统)
- 🔊 战斗音效完整(开火/命中/击杀/冰冻/连击)
- 🧪 Tester 自动测试报告(Playwright 跑通战斗循环)
**衔接**:
- ← 第 14 课:你有一座基础塔,但**战斗单调**
- → 第 16 课:战斗能打了,但**怪物太弱、波次太单调**——下节课加难度梯度
**老师课前要准备**:
- 完整战斗 PRD 模板(3 种塔的差异化规格)
- Web Audio 音效配方卡片(频率/波形对应表)
- Playwright Tester 的 prompt 模板("启动战斗 → 等 N 秒 → 检查 X")
---
### 第 16 课:波次系统 + 难度梯度(数据驱动)
**核心新概念**:
- **数据驱动设计**:`waves.json` 描述每波难度,改 JSON = 改难度,**不改代码**(回收涂鸦PK 第 11 课"加文件=加角色")
- **关卡平衡**:怪速 / 怪 HP / 出怪间隔 / 总数 — 这 4 个数字决定关卡难度
- **递进难度曲线**:简单波 → 中等波 → BOSS 波 → 多波渐进
**误概念预设**:
- M1:"难度就是怪多" → 错。难度有 4 个维度,**叠加才有层次**
- M2:"波次设计随便写就行" → 错。**第 1 波必须能通**(让玩家上手),第 5 波必须刺激(高潮)
- M3:"BOSS 就是高 HP 怪" → 错。BOSS = 设计专属机制(分裂/隐身/反弹)
- M4:"改难度要重写代码" → 错。**改 `waves.json` 即可**,这就是数据驱动
**教学锚点**:
1. **数据驱动概念回收**:
- 回顾涂鸦PK 第 11 课:"加文件=加角色"
- 演示:在 `waves.json` 加一段 `{"speed": 2.0, "hp": 3}` → 立刻新增一波,**代码不动**
2. **关卡平衡迭代**:
- 学生设计自己的 5 波难度梯度
- 召唤 Tester subagent 测每一波是否平衡(总能赢但有挑战)
- 不平衡 → 调 `waves.json` → 再测
3. **BOSS 设计启蒙**:
- BOSS 不是"超强怪",是"有专属机制的怪"
- 学生设计 1 个 BOSS:**至少有 1 个特殊机制**(分裂/隐身/反弹/招小怪)
**学生产出**:
- 🌊 个人 `waves.json`(5 波递进难度 + 1 个 BOSS)
- 📊 测试报告:每波的击杀数 / HP 损失 / 完成时间(Tester 自动跑)
**衔接**:
- ← 第 15 课:你的战斗能打,但**只有一波怪**
- → 第 17 课:关卡有梯度了,但**词库还是英语单词**——下节课让学生选自己学科
**老师课前要准备**:
- `waves.json` 模板(默认 5 波 + 1 BOSS 配置)
- Tester 平衡测试 prompt 模板
---
### 第 17 课:词库系统 + 个性化主题(学生 IP 化)
**核心新概念**:
- **词库 = JSON 数据**:`words.json` 描述学科词汇,游戏从这里读题
- **学科多样性**:学生选自己感兴趣的领域(英语/古诗/历史/地理/化学)
- **学生作品 IP 化**:每个学生的塔防绑定 ta 的兴趣
**误概念预设**:
- M1:"只能做英语单词" → 错。**词库可以是任何学科**,只要有"中文 → 答案"的对应
- M2:"自己选学科会让游戏 hint 不一致" → 错。**词库统一 schema**,游戏代码不变,数据驱动
- M3:"词库越大越好" → 错。**30-50 词足够一局战斗**,质量 > 数量
- M4:"老师必须给词库" → 错。**学生自己设计**才是核心训练 — 培养"知识工程师"思维
**教学锚点**:
1. **词库结构剖析**:
-`words.json` 的 schema:`[{question: "苹果", answer: "apple", emoji: "🍎"}, ...]`
- 任何学科都能套这个结构
- 英语:`{question: "苹果", answer: "apple"}`
- 古诗:`{question: "床前明月光,___", answer: "疑是地上霜"}`
- 历史:`{question: "唐朝建立者是?", answer: "李渊"}`
- 地理:`{question: "广东省会?", answer: "广州"}`
2. **学生选学科 + 写词库**:
- 每个学生选自己最熟/最爱的学科
- 写至少 30 词,导入游戏
- 玩自己的塔防
3. **班级词库交换**:
- 互玩别人的词库 → "原来我数学不太好的同学做了一个超难数学塔防"
- **跨学科学习的自然发生**
**学生产出**:
- 📖 个人 `words.json`(30-50 词,自选学科)
- 🎯 塔防绑定自己词库,可玩
**衔接**:
- ← 第 16 课:你的关卡有梯度,但**怪物身上的内容是老师给的**
- → 第 18 课:你的塔防完整了,**怎么让家长玩到?** 下节课打包成 .exe + 班级发布会
**老师课前要准备**:
- 多学科词库示例(英语/古诗/历史/地理 各 1 个 sample)
- `words.json` 统一 schema 文档
---
### 第 18 课:Electron 打包 + 班级发布会(发布 + 版权)
**核心新概念**:
- **Electron 打包**:Web 游戏变成桌面 `.exe`/`.app`,**双击运行,不需要浏览器**
- **开源协议**(LICENSE):Kenney 素材 CC0 / Phaser/Three.js MIT,**用别人的东西要标注**
- **路演 / 发布会**:**讲设计决策**而非功能列表(回收涂鸦PK 第 11 课)
- **跨届 IP 资产**:学生作品进入"穹狼塔防作品集",**学长学姐的作品成为下一届的遗产**
**误概念预设**:
- M1:"打包是另一个项目,跟我现在的塔防无关" → 错。**Electron 直接加载你的 game-3d.html**,无侵入
- M2:"用了 Kenney 的素材就是我的" → 错。**CC0 协议虽然允许商用,但建议标注来源**——这是工程师道德
- M3:"路演就是把游戏跑给家长看" → 错。**讲设计决策**比放游戏更重要——"我为什么做这个塔,我学了什么"
- M4:"发布会是结束" → 错。**这是穹狼塔防 IP 的开始**——下一届学生会基于你的作品继续发展
**教学锚点**:
1. **Electron 打包演示**:
- 一行命令 `npx electron-packager .` 或类似
- 学生看到自己的 `index.html` 变成 `MyTowerDefense.exe`
- 双击运行,**就是一个独立桌面游戏**
2. **版权 + LICENSE 教育**:
- 解释 CC0 和 MIT 协议(用孩子能懂的话)
- 学生写 `LICENSE.txt`:"我的代码 MIT 协议 / 美术 Kenney CC0 / 引擎 Three.js MIT"
- **第一次接触工程师道德/法律基础**
3. **班级发布会**:
- 每个学生 3 分钟路演:"我的塔防是什么、为什么这么设计、过程中遇到什么、最得意的设计是什么"
- **邀请家长**到场
- 家长玩学生的塔防(角色反转 — 孩子考家长)
- 评出"最有创意"、"最难"、"最好玩"等奖项
4. **跨届 IP 启动**:
- 学生作品打包进"穹狼塔防作品集"目录,**作为穹狼科创资产**
- 下一届学生会玩到这些作品,**作为下一届的起点**
- **时间复利** + **学生归属感** 的种子在这一刻种下
**学生产出**:
- 💾 个人塔防 `.exe`(可双击运行的桌面游戏)
- 📜 个人 LICENSE.txt(标注代码 + 素材 + 引擎来源)
- 🎤 3 分钟路演 + 家长玩自己作品的视频
- 🏆 班级评奖(各种奖项,人人有奖)
**衔接**:
- ← 第 17 课:你的塔防完整 + 个性化
- → 秋季:多文件项目结构 + Electron 深入 + 更复杂的项目(**第 18 课是秋季入口的伏笔**)
**老师课前要准备**:
- Electron 打包脚本(一键 `package.json` + main.js)
- 班级发布会场地 + 家长邀请函
- 评奖证书模板
- 跨届 IP 资产目录("穹狼塔防作品集"git 仓库或共享目录)
---
## 合流说明
> **合流时间点待定。** 原计划第5课合流但考虑到 AICODE-03 学生打字和表达能力的成长节奏,合流点可能后延。
>
> AICODE-06 前5课的衔接设计确保学生具备以下基础
>
> | AICODE-03 前期培养的能力 | AICODE-06 前5课对应的能力 |
> |:---|:---|
> | AI基本原理认知Token、幻觉等 | 扣子→代码的认知跃迁(配置 vs 创造) |
> | 提示词五要素模型 | 三种模式选择策略 + 自定义智能体系统提示词 |
> | AI编程工具操作 + 审查三问 | Trae IDE 深度操作(跟随模式、元素选择、内置浏览器) |
> | Bug描述三要素 + 迭代修复 | 多轮迭代 + 内容规划 + 交互效果 + 产品路演 |
>
> 合流后的课程内容详见 [AICODE-03课程大纲](../AICODE-03/AICODE-03课程大纲.md)。