芯语教育课程包 · 高校通识版 · 03
学生学习教程
从第一次运行到独立作品 · v1.1
A 轨零基础可解释程序 · B 轨原生 9S 源码 · 双轨学习
适用零编程基础
高校通识学习者
轨道A:积木/单步
B:原生 .9s/虚拟机
工具芯语创作客户端 3.0
Windows 10/11
最终成果可运行、可解释
可分享的作品
版本v1.1 · 2026-10
先记住一句话:能运行不等于学会了。A 轨要用轨迹、变量或输出证明;B 轨要用源码行、九S虚拟机窗口或音效证明。两条轨道的证据不能互换。
先选轨道:A 轨适合零基础,从猜数字、答题、星际收集开始;B 轨适合已经能运行 A 轨作品的学习者,阅读原生贪吃蛇/俄罗斯方块源码,并由原九S虚拟机执行。B 轨没有积木视图,也没有逐条单步。
学习路线(v1.1)
| 步骤 | 轨道 | 你会做什么 | 你要留下的证据 |
| 1 | 双轨 | 启动客户端,打开示例库,区分原生/预览/教学示例 | 首页截图 + 来源标签说明 |
| 2 | A | 运行《星际收集》,观察舞台 | 一句话规则说明 |
| 3 | A | 看懂源码、积木、舞台的关系 | 圈出 4 类节点 |
| 4 | A | 单步运行猜数字 | 轨迹截图 + 变量表 |
| 5 | A | 输入 9、2、7,观察反馈 | 三次输入记录 |
| 6 | A | 改变量、改条件、改循环 | 改造前后对比 |
| 7 | B | 打开原生贪吃蛇源码,定位窗口/画布/按键/定时器/音频 | 源码行对应表 + VM 截图 |
| 8 | B | 改一个原生源码常量并重启 VM | 源码差异 + VM 窗口 |
| 9 | 双轨 | 用 AI 生成/路由一个作品并验收来源 | 提示词 + 路由结果 + 验收单 |
| 10 | 双轨 | 定位一个错误并修复 | A:错误行/轨迹;B:源码行/VM |
| 11 | 双轨 | 导出与分享作品 | 源码/工程/.9s + 来源说明 |
| 12 | 双轨 | 完成综合项目与答辩 | 作品 + 3 分钟讲解 + 分轨证据 |
0. 启动客户端
- 双击桌面上的“芯语创作客户端”,或运行安装包完成安装后从开始菜单打开。
- 首次启动会进入“开始创作”首页。你会看到三个入口:说出我的想法、从示例开始、课程挑战。
- 如果老师要求使用真实 AI,第一次需要在设置中粘贴 AI 服务密钥。密钥只保存在本机,桌面客户端使用 Windows 加密存储;不要把密钥发给同学或写进作品。
- 没有网络或没有密钥时,A 轨示例、源码、积木、运行、单步、导出仍可用;B 轨原生源码与九S虚拟机也可本机运行;AI 生成和 AI 助教会提示服务未连接。
隐私提醒:不要在需求、变量名、作品说明里填写真实姓名、身份证号、手机号、住址、学校内部信息。AI 生成不需要这些信息。
1. 第一次运行:星际收集
- 点击左侧“示例库”,找到“星际收集”,点击“用这个开始”。
- 进入创作工作台后,先看三个区域:左边是需求与挑战,中间是源码与积木,右边是作品舞台与输出/变量/轨迹。
- 点击顶部“运行作品”,观察舞台上的角色、星星和分数。
- 在源码区找到这几行:
当 开始运行
变量 分数 = 0
从 1 到 4 循环 回合 {
移动 40 步
右转 90 度
加分 1
}
把“加分 1”改成“加分 5”,再运行。你能看到分数变化吗?如果看不到,先向下滚动到舞台,或确认源码已经同步到积木。
记录:我改了 ________,运行后分数从 ________ 变成 ________。
2. 看懂源码、积木和舞台
源码(阳·理)用中文写的 9S 程序。你能看到每一行的变量、条件、循环。
积木(阴·形)同一份 AST 的可视化表示。改积木等于改源码,不是另一套程序。
舞台当前代码真正运行出来的输出、输入、变量和状态。
切换编辑器顶部的“积木 / 中文源码 / 分屏”,观察同一段程序在两种视图中的对应关系。你不需要背语法,先学会“找节点”。
2B. B 轨:打开原生 9S 源码
- 打开“示例库”,选择“贪吃蛇(原生 9S)”或“俄罗斯方块”,点击“用这个开始”。
- 工作台会显示完整中文 `.9s` 源码,编辑器顶部只有“原生 9S 源码”,没有积木/分屏;这是 B 轨,不是故障。
- 在源码中找这些调用:`创建窗口`、`九S画布`、`设置绘制函数`、`设置按键函数`、`设置定时器`、`启动消息循环`、`播放音效文件`。
- 点击“原生运行”,游戏会在原九S虚拟机的独立窗口打开;关闭窗口或点击“停止”结束。
- 修改源码后点击“保存源码”,再次“原生运行”;源码会写入 `.9s` 并由原 VM 真实执行。
B 轨常见误解:原生游戏没有积木视图,也没有逐条单步;它的证据是源码行、VM 窗口、音效与运行记录。不要用 A 轨的积木/轨迹标准评价 B 轨。
窗口 = 创建窗口("我的原生游戏", 720, 360)
画布 = 九S画布(窗口)
设置绘制函数(绘制界面)
设置按键函数(处理按键)
设置定时器(刷新, 16)
显示窗口(窗口)
启动消息循环()
3. 单步:看清程序怎样一步步走
- 打开示例“猜数字”,点击舞台右上角“单步”。
- 每次点击“下一步”,只执行一条命令;左侧对应积木会出现橙色高亮。
- 点击输出面板的“轨迹”,查看每一步的命令、条件真假和变量快照。
- 先预测“猜测次数会变成几”,再点下一步验证。
单步和连续运行的区别:连续运行适合体验作品;单步适合理解程序。看不懂时,先单步,再连续运行。
4. 输入与变量:谁记住了我的猜测
- 点击“运行作品”,等待输入框出现。
- 输入 9,点击“确认”或按 Enter。观察输出与变量。
- 再输入 2,再输入 7,记录每一轮结果。
| 我输入 | 玩家猜测 | 猜测次数 | 程序输出 |
| 9 | 9 | 1 | 大了,再试一次! |
| 2 | 2 | 2 | 小了,再试一次! |
| 7 | 7 | 3 | 恭喜你,猜中啦! |
结论:输入框里的值被写进了“玩家猜测”变量;每猜一次,“猜测次数”加 1。答案变量“神秘数字”在舞台上被隐藏,但调试时可以在变量面板查看。
5. 条件:程序为什么会说“大了”
- 在源码中找到“如果(玩家猜测 == 神秘数字)”。
- 单步执行一次错误猜测,观察轨迹中的“→ 假”。
- 再找到嵌套的“如果(玩家猜测 > 神秘数字)”,观察它何时为真。
- 把“大了,再试一次!”改成你自己的提示语,重新运行验证。
如果 (玩家猜测 == 神秘数字) {
输出("恭喜你,猜中啦!")
} 否则 {
如果 (玩家猜测 > 神秘数字) {
输出("大了,再试一次!")
} 否则 {
输出("小了,再试一次!")
}
}
常见错误:判断相等要写“==”,不是“=”。“=”是给变量赋值,“==”才是比较。
6. 循环:重复,但必须能停下来
猜数字使用“当(已猜中 == 假 且 猜测次数 < 5)”。它有两个退出条件:猜中了,或者次数用完了。
- 把条件里的 5 改成 3。
- 连续输入三个错误数字,观察第 4 次是否还允许输入。
- 在轨迹中确认:循环是因为“次数到上限”结束,还是因为“猜中”结束。
“从 1 到 4 循环”适合已知次数的重复,例如星际收集的 4 轮; “当(条件)”适合不知道要重复多少次、但知道何时停止的任务。
安全提醒:循环体里必须改变量或产生退出条件。运行环境会在循环超过 200 次时自动停止,这是安全保护,不是游戏规则。
7. AI 辅助与模板路由:把需求说清楚
点击首页“说出我的想法”或工作台左侧需求框。一个好需求至少包含五部分:
| 要素 | 示例 |
| 目标 | 做一个答题闯关小游戏。 |
| 规则 | 共 3 题,答对加 1 分,答错提示再想想。 |
| 输入 | 玩家输入 A、B 或 C。 |
| 反馈 | 答对显示“回答正确”,答错显示正确答案。 |
| 限制 | 每题只能答一次,最后显示总分。 |
做一个答题闯关小游戏。共 3 题,玩家输入 A、B 或 C;
答对加 1 分并提示“回答正确”,答错提示“再想一想”;
最后输出总分。每题只能答一次。
- 点击“AI 生成作品”,等待预览。
- 先看预览中的作品名、结构、源码和来源标签,不要直接接受。
- 检查:是原生 9S 模板、内嵌预览还是教学原型?有输入吗?有判断吗?有得分吗?条件和需求一致吗?
- 接受作品,A 轨点击运行看舞台;B 轨点击“原生运行”启动九S虚拟机窗口。
- 如果不符合需求,返回需求框补充规则,再次生成。
| 来源 | 特征 | 你的验收 |
| 原生 9S 模板 | 俄罗斯方块/贪吃蛇/打飞机/躲避陨石 3D;打砖块、接水果、迷宫寻宝、打地鼠、扫雷 2D;显示完整中文 `.9s`,由对应虚拟机运行 | 查看源码、启动 VM、改一处并重启 |
| 内嵌预览 | 五子棋/2048;可玩,但界面明确标注“非原生源码” | 不要把预览说成原生源码 |
| 教学原型 | 9S 教学子集,有积木/单步/轨迹 | 用轨迹、变量和输入验证 |
AI 使用三条底线:不输入个人敏感信息;不直接提交未理解的作品;必须声明 AI 参与了哪一部分、来源是哪一种,并说明你做了哪些验证和改造。
8. 调试:先定位,再修改
| 现象 | 先做什么 | 再做什么 |
| 提示“第 X 行无法识别” | 看第 X 行是否缺关键字、括号或引号 | 只修这一行,重新同步 |
| 点运行没有画面 | 确认舞台可见、作品已开始运行 | 检查是否停在源码标签或正在等待输入 |
| 变量不变化 | 看轨迹中变量赋值节点是否执行 | 检查变量名是否一致、条件是否进入分支 |
| 循环停不下来 | 检查循环条件与次数变量 | 先复位,再把条件改小 |
| 输入框不出现 | 确认程序执行到“选择”节点 | 单步走到该节点,检查是否被条件跳过 |
| 原生游戏窗口没出现 | 确认点击的是“原生运行”,不是 A 轨“运行作品” | 检查任务栏、VM 是否被“停止”、源码是否为空 |
| 原生源码改完 VM 启动失败 | 看源码错误行、括号/引号、资源路径 | 只改一处,保存源码后再启动 |
| 原生项目找不到积木 | B 轨没有积木视图,这是设计边界 | 直接读完整 `.9s` 源码,用源码行和 VM 作为证据 |
A 轨调试四步:读错误 → 找到节点 → 单步验证 → 只改一处再运行。B 轨调试四步:读源码行 → 定位常量/函数 → 保存源码 → 启动 VM 验证。两条轨道不要混用证据。
9. 分享:让别人也能运行
- 点击舞台右上角“分享”。
- 选择“导出 9S 中文源码”,得到 .9s 文件。
- 选择“导出作品工程”,得到包含作品信息的 JSON,便于备份。
- 选择“复制分享文本”,把作品说明和源码发给同学。
- A 轨:同学把源码粘贴到源码区并同步,得到同一份积木并运行。
- B 轨:同学导出完整 `.9s`,在芯语原 IDE 或九S虚拟机中直接运行;不能用“粘贴到积木区”替代。
作品说明至少写清:轨道(A/B)、作品目标、玩法规则、一个关键条件/源码函数、AI 参与与来源(原生模板/预览/教学原型)、已知限制。
10. 挑战清单
| 序号 | 挑战 | 你要留下的证据 |
| 1 | 把神秘数字改成 4,重新跑一轮 | 新答案下的三次输入记录 |
| 2 | 把次数上限改成 3 | 循环退出原因说明 |
| 3 | 改写“大了 / 小了”的提示语 | 改造前后输出截图 |
| 4 | 把星际收集改成 2 轮、每轮 5 分 | 预期分数与实际分数 |
| 5 | 让 AI 生成一个答题作品并验收 | 提示词 + 来源标签 + 四项检查 |
| 6 | 找一处“代码与舞台不一致”并修复(A 轨) | 一致性表 + 修复说明 |
| 7 | B 轨:在原生贪吃蛇源码中找到窗口/画布/按键/定时器/音频 | 源码行对应表 + VM 截图 |
| 8 | B 轨:改原生俄罗斯方块窗口标题或下落间隔 | 源码差异 + VM 窗口截图 |
| 9 | 把内嵌预览误说成原生源码,找出并纠正 | 来源标签说明 + 纠正记录 |
9S 语法速查表
| 结构 | 写法 | 作用 / 提示 |
| 开始 | 当 开始运行 | 程序入口,通常放在第一行。 |
| 变量 | 变量 分数 = 0 | 创建或更新一个命名数据。 |
| 输出 | 输出("你好") / 输出(分数) | 把文字或变量值送到舞台。 |
| 选择 | 选择 "请输入数字" | 等待输入,并把值写入对应变量。 |
| 条件 | 如果 (分数 >= 3) { … } 否则 { … } | 条件为真走如果,为假走否则。 |
| 当循环 | 当 (分数 < 4) { … } | 条件为真时反复执行,必须有退出路径。 |
| 计次循环 | 从 1 到 4 循环 回合 { … } | 已知次数时使用,循环变量记录第几轮。 |
| 函数 | 函数 我的函数() { … } | 把一组命令命名,便于复用。 |
| 教学扩展 | 移动 40 步 / 右转 90 度 / 等待 1 秒 / 加分 1 | 用于角色、节奏和计分;属于教学运行子集。 |
| 场景 | 场景 "未来校园" | 切换故事场景,配合剧情与选择使用。 |
原生 9S 图形/音频 API 速查(B 轨)
以下 API 只适用于完整原生 `.9s`,由原九S虚拟机执行;它们不属于 A 轨教学子集的积木语法。
| API | 典型写法 | 作用 |
| 创建窗口 | 创建窗口("标题", 720, 360) | 创建原生 Win32 图形窗口。 |
| 九S画布 | 九S画布(窗口) | 取得绘制画布。 |
| 画矩形 / 画圆 / 画文本 | 画矩形(画布, x, y, w, h, 颜色) | 绘制棋盘、方块、棋子、分数。 |
| 设置绘制函数 | 设置绘制函数(绘制界面) | 注册每帧/重绘回调。 |
| 设置按键函数 | 设置按键函数(处理按键) | 接收方向键、空格、R、ESC 等。 |
| 设置鼠标按下函数 | 设置鼠标按下函数(处理点击) | 棋盘类游戏接收坐标点击。 |
| 设置定时器 | 设置定时器(刷新, 16) | 驱动实时循环、下落、蛇移动。 |
| 显示窗口 / 启动消息循环 | 显示窗口(窗口) / 启动消息循环() | 显示窗口并进入事件循环。 |
| 播放音效文件 / 背景音乐 | 播放音效文件("资源/clear.wav") | 由 VM 音频线程播放资源。 |
| 列表 / 结构体 / 枚举 | 列表追加(蛇身X, 头X) | 组织棋盘、蛇身、方块和游戏状态。 |
常见错误速查
| 错误 / 现象 | 原因 | 修复 |
| 第 X 行无法识别 | 关键字、括号、引号或数字格式不完整 | 只修第 X 行,再同步 |
| 缺少“}” | 结构块没有闭合 | 补齐右花括号,保持缩进 |
| 程序为空 | 源码区没有内容 | 从示例载入或添加一个开始节点 |
| 变量 = undefined | 变量名拼写不一致或未初始化 | 统一变量名,先赋值再读取 |
| 循环超过 200 次 | 条件永远为真 | 在循环体内更新次数或设置退出条件 |
| 输入无效 | 数字框输入了字母或空值 | 输入有效数字后确认 |
| AI 服务未启动 | 没有打开客户端/本机服务 | 重启客户端;离线时先用示例学习 |
AI 使用声明与学习反思
1我声明:本次作品属于 □ A 轨教学子集 □ B 轨原生 9S;AI 参与 ____________________________________(需求/模板路由/助教/未使用)。
2我验证了来源:□ 原生 9S 模板 □ 内嵌预览 □ 教学原型;没有把预览说成原生源码。
3A 轨:我用轨迹/变量/输入验证;B 轨:我用源码行/VM 窗口/音效验证。
4我改造了:____________________________________(至少一处),并重新运行对比。
5我能解释:一个变量/条件/循环,或一个原生窗口/绘制/按键函数为什么这样写。
6我没有填写个人敏感信息,也没有提交未理解的内容。
学习日志模板
最后的提醒:A 轨遇到问题时先复位、再单步、看轨迹;B 轨先读源码行、保存、再启动 VM。你不需要一次写对;你需要知道为什么错、改哪里、用哪条轨道的证据证明改对了。