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

31 KiB
Raw Blame History

AICODE-06 课程大纲

AI编程创新课 · 06路线 · 春季学期共18课1-5课衔接 + 6-7俄罗斯方块 + 8-11涂鸦PK + 12-18单词塔防大项目合流时间点待定 适用对象小学6年级起点有扣子/低代码经验


独立阶段代码编程衔接第1-5课

课时 课程主题 学习目标 知识点复习 知识点新知
1 从扣子到代码 • 理解"扣子智能体"和"AI编程"的本质区别:配置 vs 创造
• 掌握 Trae IDE 界面布局和核心操作流程
• 理解 Vibe Coding用自然语言驱动AI写代码
扣子智能体搭建经验 Trae IDE 操作、Builder/Chat 模式、Vibe Coding 概念
2 SOLO模式初体验 • 理解三种模式的区别Chat问问题、Builder从零创建、Solo Coder精准修改
• 能根据场景选择正确模式
• 掌握跟随模式实时观看AI编写代码
Trae IDE 操作、Builder 模式 Chat/Builder/Solo Coder 三种模式、跟随模式、模式选择策略
3 Solo Coder 迭代深化 • 掌握内置浏览器预览和元素选择功能
• 能用"点击元素→描述修改"的方式精准迭代
• 完成从基础版到完善版的多轮迭代
三种模式、跟随模式 内置浏览器预览、元素选择、点击式精准修改、多轮迭代策略
4 我的个人主页(上) • 理解"内容先行"原则先想清楚展示什么再让AI做
• 掌握板块化设计思维:把页面拆成独立区域
• 能在 Trae 中创建自定义智能体并编写系统提示词
三种模式、元素选择、迭代 内容清单方法、板块化设计、Trae 自定义智能体、占位内容替换
5 我的个人主页(下) • 能根据同学反馈有针对性地优化页面
• 能用自然语言让AI实现交互效果hover、动画、轮播
• 能用3分钟路演展示作品并讲解设计思路
自定义智能体、内容清单、Solo Coder 迭代 交互效果实现、设计一致性、发布前检查、产品路演

项目实战阶段魔幻俄罗斯方块第6-7课

面向已完成前5课的 AICODE-06 学员。以俄罗斯方块为载体系统训练工程师思维Plan Mode 先行、需求审核、自动测试、新窗口原则。

课时 课程主题 学习目标 核心概念 核心工具
6 魔幻俄罗斯方块(上)— Plan Mode 先行 • 掌握 Plan Mode 三步流程:整理需求 → 需求审核 → 确认需求
• 理解需求质量 = 输出质量需求越详细AI 执行越准确
• 建立新窗口原则:审核必须在新窗口进行,避免上下文污染
• 能独立完成「需求文档 → 审核 → 生成 → 验收 → 结果溯源」完整闭环
Plan Mode、需求文档、需求审核、结果溯源、新窗口原则、上下文污染 Kimi 2.5
7 魔幻俄罗斯方块(下)— 魔改升级 + AI 自动测试 • 掌握增量需求文档:在已有基础上只写新增功能
• 理解自动化测试:让 AI 生成测试脚本替代手动验收
• 能读懂测试脚本 结果并溯源修复
• 建立「测试通过才算完成」的质量意识,利用测试脚本安全做第二版、第三版
自动化测试、测试覆盖、边界条件、增量需求、新窗口原则 Kimi 2.5

两课核心工作流:

Plan Mode新窗口A整理需求
    ↓
需求审核新窗口BAI扮演审核工程师
    ↓
执行生成新窗口CKimi生成代码
    ↓
手动验收 → 感受手动测试的局限
    ↓
AI生成测试脚本新窗口D自动测试
    ↓
测试全部 ✅ → 有了安全网 → 放心做第二版、第三版

项目实战阶段涂鸦PK第8-11课

在工程流程Plan Mode + 测试)已内化的基础上,以「自绘角色对战游戏」为载体,训练数据驱动设计、增量需求迭代、和设计决策表达力。

课时 课程主题 学习目标 核心能力 核心产出
8 涂鸦PK— 画图工具 + 角色设计 • 能用需求文档驱动生成自己的HTML5画图工具
• 能画出两帧角色Spritesheet帧1待机+帧2攻击
• 理解20分属性预算制能根据打法定位分配属性
拆解力、审美力 自制画图工具 + 角色Spritesheet128×64 PNG+ 角色属性JSON
9 涂鸦PK— 基础对战系统 • 能用需求文档描述战斗规则(公式/先手/特技让AI生成完整对战系统
• 理解边界情况的重要性:需求文档必须覆盖所有异常情况
• 能用AI在新窗口生成测试脚本验证伤害公式和胜负判定
拆解力、韧性力 可对战的PK系统有血条/四种行动/AI对手+ 测试脚本验证报告
10 涂鸦PK— 动画 + 音效 + 特技 • 能用自然语言描述动画「感觉」让AI实现Phaser Tween动画
• 理解Web Audio API用代码合成音效零外部素材依赖
• 掌握增量需求写法:只写新增部分,不重写已验收功能
审美力、提问力 有完整动画+音效+特技特效的战斗体验版
11 涂鸦PK— 班级锦标赛 • 理解数据驱动设计加JSON文件=加角色,不改代码
• 能用增量需求实现roles角色系统从文件夹读取所有角色
• 能用3分钟路演清晰表达设计决策定位+意图+复盘)
表达力、共创力 roles系统 + 班级角色锦标赛 + 设计决策路演

四课核心工作流延伸自第6-7课工程流程

需求驱动窗口A整理 → 窗口B审核 → 窗口C执行
    ↓
测试验证窗口D生成测试脚本 → 验证核心逻辑)
    ↓
增量迭代(只写新增需求 → 已验收功能不重写)
    ↓
数据驱动扩展(加文件=加功能 → 代码与数据分离)

项目实战阶段:单词塔防 3D第12-18课

春季后半学期主线大项目。整学期 7 课挂同一个项目,从概念引入到完整发布。引入 Subagent(独立 AI 工人)+ SkillsAI 专业知识包)两个核心新概念,把"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 装"专业知识包"
• 装 game-studio 插件 → 体验"装 vs 不装"代码差异
• 用 phaser-2d-game skill 让 AI 做出可玩的跳一跳
Skills(食谱类比)+ game-studio 插件 + phaser-2d-game skill 🎮 可玩的跳一跳 .html小球能跳 + 平台 + 计分)+ 🧠 Skills 概念笔记
13 Subagent + 塔防 v0.1 — 最简能玩版本 • 理解 Subagent 本质 = 独立上下文(为什么要"另起炉灶"做审代码)
• 召唤 Code Review subagent 审第 12 课跳一跳代码
• 用 3D 关卡设计器搭自己的塔防地图
用刚做的地图 + 1 个塔做出原始塔防 v0.1(自动开火,可击杀怪)
Subagent(独立上下文 / 审代码工程师)+ Code Review subagent + 3D 编辑器 + 塔防 v0.11 塔 1 怪类型) 🔍 被 review 优化过的跳一跳代码 + 🗺️ 个人 3D 地图 + 🗼 最简塔防 v0.11 塔自动攻击 + 怪沿路径走 + 击杀计数)
14 项目深度 PRD — 引入"单词当子弹"核心机制 • 在 v0.1 基础上做项目级 PRD(完整塔防设计文档)
首次引入项目核心机制:英语单词当塔的子弹/弹药
• 召唤 Planner subagent 协助写 PRD,Reviewer 审 PRD
项目级 PRD + Planner subagent 登场 + 单词卡片 = 子弹机制 📝 项目 PRD.md覆盖词库系统/卡片机制/塔类型/胜负条件)+ 🎮 塔防 v0.2塔需要单词卡片才能开火,核心机制成型)
15 塔战斗系统 + Web Audio 音效 • 实现 3 种塔(单发/冰冻/链式)+ 子弹追踪
• 用 Web Audio API 合成战斗音效(零素材)
• 用 game-playtest skill 自动测试
多塔差异化逻辑、Web Audio 音效合成、playtest skill 3 种塔完整战斗 + 命中/击杀音效 + 自测报告
16 波次系统 + 难度梯度 • 数据驱动的波次配置(waves.json
• 关卡难度递进设计(怪速/血量/数量)
• 金币经济与塔商店调优
数据驱动设计、关卡平衡 多波次关卡简单→中等→Boss+ 个人 waves.json
17 词库系统 + 个性化主题 • 设计 JSON 词库(英语/古诗/历史/地理可选)
• 让塔防绑定 TA 的兴趣领域
• 兼容老师班级词库 + 学生自定义
学生作品 IP 化、JSON 数据扩展 个人词库 JSON30-50 词,自选学科)+ 塔防可玩自家词库
18 🎉 班级发布会 + Electron 打包 • Electron 打包成 .exe 桌面应用
• 加 LICENSE.txtCC0/MIT 协议入门)
• 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课程大纲