⚠️ 注意:现在已经不再使用 click_flag(带下划线的旧写法),代码模式统一用 main() 当入口!
pendown() // 放下画笔
for i in range(4) {
walk(3) // 走3步
rotright(90) // 右转90度
}
penup() // 抬起画笔
}
if (hit("金币")) {
分数 += 10 // 碰到金币加分
print("吃到金币啦!")
setsizepct(120) // 变大一点
} else {
walk(1) // 没碰到就继续走
}
}
• __last_calc(上次计算结果):上次算出来的数。比如刚算 3+5,这里就是 8。
• __last_cmp(上次比较结果):上次比较的对错。比如刚比 3>5,这里是 false(错)。
• __last_read(上次读取结果):上次从列表/字典里读出来的东西。
• __last_len(上次长度):上次量出来的长度(列表几个元素、字符串几个字)。
• __last_str(上次字符串):上次处理过的文字。
• __last_time(上次时间):上次记下的时间。
• __last_ans(上次答案):玩家上次回答 ask 的内容。
⭐ 不用专门记,需要时知道:电脑自动帮你存了"上一次"的答案,直接用就行!
int 分数 = 0 // 创建一个叫"分数"的盒子
for i in range(5) {
分数 += 1 // 每次把盒子里的数加1
print(分数) // 显示出来:1, 2, 3, 4, 5
}
}
• fn 跳一下() { jump() } —— fn 简写法(推荐!)
• Function 跳一下() { jump() } —— 完整写法
• f(x) 跳一下() { jump() } —— 数学风格写法
⭐ 推荐用 fn——字最少,最好打!三种写法效果完全一样,选自己顺手的就行。
help 查看全部命令。pendown() // 放下笔,开始画线
for i in range(4) {
move(50) // 走50步画一条边
rotright(90) // 转90度,准备画下一条边
}
penup() // 画完啦,抬笔
}
• left(左右翻转):只能水平镜像,像照镜子一样左右翻转
• up(上下翻转):只能垂直镜像,像水面倒影一样上下翻转
• free(自由翻转):按角度旋转,不做镜像
• none(禁止翻转):所有旋转代码都会被当作注释忽略,角色不会翻转
变量声明和类型
代码世界中的变量需要先声明类型,声明后只能赋对应类型的值。系统会检查类型是否匹配。四种类型用中文名字记更简单:
| 中文名 | 对应代码 | 说明 | 示例 |
|---|---|---|---|
| 整数 | int | 没有小数点的数字 | int 分数 = 0 |
| 小数 | float | 有小数点的数字 | float 速度 = 3.5 |
| 文字 | str | 用引号括起来的内容 | str 名字 = "小方" |
| 判断 | bool | 对/错(true/false) | bool 存活 = true |
💡 记法:整数(int)、小数(float)、文字(str)、判断(bool)。写代码时用英文关键字,心里记中文名字。
运算符
| 运算符 | 含义 | 示例 | 结果 |
|---|---|---|---|
| + | 加法 | 3 + 5 | 8 |
| - | 减法 | 10 - 3 | 7 |
| * | 乘法 | 4 * 5 | 20 |
| / | 除法 | 10 / 3 | 3.333... |
| % | 取余数 | 10 % 3 | 1 |
| ** | 次方 | 2 ** 3 | 8 |
控制流语法
if / elif / else 条件判断
for 循环
range(10) 表示从0到9循环10次,i 每次自动+1。
while 循环
forever 永远循环
forever(永远循环)每帧执行一次,用于持续检测和实时响应。它会一直跑,直到程序停止。
repeat 重复 N 次(更简单的循环)
repeat(5) 就是"重复做 5 次",和 for i in range(5) 一样,但写起来更简单,适合不想管变量 i 的时候。
for i = 1 to N 从 1 数到 N
for i = 1 to 10 是"从 1 数到 10",i 第一次是 1,最后一次是 10。和 for i in range 不同,这里 i 是从 1 开始,不是从 0 开始哦!
break 跳出循环
break 是"我不做了!",立刻跳出当前循环,执行循环后面的代码。就像吃到饱就停下筷子。
函数定义和调用
函数用 function 关键字定义,参数放在括号里。调用时直接写函数名和参数。
return 返回值
列表和字典操作
列表操作
字典操作
广播机制
广播是不同角色之间通信的方式。一个角色发送广播,其他角色可以接收并响应。
发送广播 发送后不等待;发送广播 等待 发送后等待所有接收方执行完毕。
注释语法
注释是给程序员看的说明文字,电脑不会执行里面的指令。在代码模式下,注释以双斜杠 // 开头,是灰色的代码块。
⚠️ 重要决策:注释会让程序慢一点点,但让代码容易看懂。要在"代码跑得快但看不懂"和"跑得慢但容易看懂"之间做权衡——重要的地方写注释,简单的地方不写。
另外,--(两个减号)也可以作为单行注释使用,--[[ ... --]] 可以写多行注释。
📦 变量 —— 小方的书包格子
小方有一个书包,书包里分成好几个小格子。有一个格子贴着标签"分数",里面放着一张写着 0 的卡片。
考试得了 10 分,小方就把卡片拿出来,换成 10;又得了 5 分,再换成 15。格子还是那个格子,但里面的数字可以变来变去。
这就是变量(就是可以改变的格子,里面装着数据,想换就换)。
整数 分数 = 0 准备一个叫"分数"的格子,放进 0
分数 += 10 得分了,把格子里的数字加 10
分数 += 5 又得分,再加 5,现在变成 15
格子可以装不同东西:整数(1、2、3)、文字("你好")、判断(对/错)。
🔄 循环 —— 小方跑操场
体育课上,老师对小方说:"绕操场跑 10 圈。"老师只说了一遍,小方却跑了 10 圈。
小方心里数着:1 圈、2 圈、3 圈……一直跑到第 10 圈才停下来。不用老师喊 10 次,说一次就够了!
这就是循环(就是重复做同一件事,告诉电脑几次,它就乖乖做几次)。
知道次数用 for:for i in range(10) 跑 10 圈
不知道次数但知道什么时候停用 while:while (没到家) 一直跑,直到到家
循环的好处:不用写重复的代码,一段代码就能做很多次!
🔀 条件判断 —— 小方看天气
早上出门前,小方会看一眼窗外。他想:如果下雨,就带伞;否则就不带。
如果出太阳,就戴帽子;如果刮大风,就穿外套;其他情况,什么都不带。不同天气,做不同的事。
这就是条件判断(就是"如果……就……否则……",根据情况做不同的决定)。
if (下雨) { 带伞 } 如果下雨,就带伞
else { 不带 } 否则不带
elif (出太阳) { 戴帽子 } 加一个"否则如果"
条件判断让程序变"聪明"——能根据不同情况做不同反应!
🔧 函数 —— 小方做三明治
小方会做三明治。他把做法写成一张菜谱:"拿面包→放火腿→放生菜→盖面包"。每次想吃,照着菜谱做一遍就行。
妈妈喊"做一个!"小方就照菜谱做。换成放果酱,就是水果三明治。菜谱还是那张菜谱,只是材料不同。
这就是函数(就像一张菜谱,写好步骤取个名字,要用时叫名字就行,还能换材料)。
function 做三明治(材料) { ... } 写一张菜谱
做三明治("火腿") 叫名字,做火腿三明治
做三明治("果酱") 换材料,做果酱三明治
材料在代码里叫"参数"(就是做函数时换的东西)。写一次,反复用!
📋 列表 —— 小方整理玩具
小方的玩具柜有一排抽屉,每个抽屉上贴着编号:0 号、1 号、2 号、3 号……
0 号放小汽车,1 号放积木,2 号放皮球。想找皮球?拉开 2 号抽屉就行!新玩具就放最后一个空抽屉。
这就是列表(就像一排抽屉,每个抽屉有编号,按编号存东西、找东西)。
list 玩具柜 准备一排抽屉
add "汽车" to 玩具柜 放进 0 号
read 玩具柜 2 拉开 2 号看看是什么
注意:编号从 0 开始,不是从 1 开始哦!第一个是 0 号。
📖 字典 —— 小方认同学
开学第一天,小方拿到一本花名册。翻到"小明"那一页,写着:身高 130,爱踢球,坐第 3 排。
小方不用记小明排第几,只要翻到"小明"这一页,所有信息都在。每个名字对应一串信息。
这就是字典(就像花名册,用名字找信息,名字叫"键",信息叫"值")。
dict 花名册 key 小明 = "爱踢球" 写一页
dict 花名册 read 小明 翻到小明那页看看
dict 花名册 has "小红" 看看有没有小红这页
列表按编号找,字典按名字找——这就是它们的区别!
⚡ 布尔值 —— 开关的故事
小方房间里有一盏灯,开关只有两个状态:开(灯亮)和 关(灯灭)。没有第三个状态。
小方问妈妈"灯开着吗?",答案只能是"是"或"不是"。不可能是"半个开"。
这就是布尔值(只有"真"和"假"两种状态,就像开关,要么开要么关)。
判断 灯亮 = true 灯开着
判断 灯亮 = false 灯关了
if (灯亮) { 关灯 } 如果灯亮着,就关掉
true = 对/真/开,false = 错/假/关。条件判断的结果就是布尔值!
📻 广播 —— 对讲机的故事
小方和方琪各有一个对讲机。小方按下按钮喊"开始!",方琪那边的对讲机"嗞——"地响起来,听到了就出发。
小方不用跑过去告诉方琪,也不用知道方琪在哪。只要对讲机频道对上,消息就能传到。
这就是广播(就像对讲机,一个角色喊话,所有听这个频道的角色都能收到)。
sendbc("开始") 小方按对讲机喊话
onbc("开始") { 出发 } 方琪听到就出发
好处:发送方不用知道谁在听,消息对上就能通信!
📍 坐标 —— 寻宝地图
小方玩寻宝游戏,地图上写着"宝藏在 东 120 步,北 30 步"。两个数字一对照,就能精准找到宝藏位置。
舞台也像一张地图:横着叫 x(左右),竖着叫 y(上下)。正中间是 (0, 0)。
这就是坐标(用两个数字标出位置,x 是左右,y 是上下)。
gotoxy(100, 50) 移到右上方
gotoxy(-100, -50) 移到左下方
gotoxy(0, 0) 移到正中间
口诀:x 大向右,y 大向上,中间是 (0,0)。
🪜 递归 —— 冰淇淋排队
小方给方琪买冰淇淋,店前排了好长一队。小方问前面的人:"我是第几个?"前面的人说:"我不知道,我再问前面的。"
前面的人又问更前面的……一直问到第一个人,第一个人说:"我是第 1 个!"然后答案往回传:第 2 个、第 3 个……传到小方,小方知道自己是第 15 个。
这就是递归(先一层层问下去叫"递",再一层层把答案传回来叫"归")。
function 我是第几个() {
if (前面没人) { return 1 } 第一个人
return 前面的人.我是第几个() + 1 问前面
}
关键:函数里调用自己,但必须有一个"不再问下去"的终点(第一个人)!
🔀 排序 —— 碰倒饮料
小方赶着上学,一不小心碰倒了一排饮料:红橙黄绿青蓝紫,顺序全乱了。旁边有个机械臂,会把饮料认成 1 2 3 4 5 6 7。
小方有点急,分不清饮料的顺序。他看到机械臂旁有个操控面板,需要操控机械臂把饮料归位……
这就是排序(把乱的东西按顺序排好)。详细玩法看"专题讲解"里的饮料故事!
冒泡排序:机械臂每次拿相邻两瓶,顺序错就交换
选择排序:机械臂每次找最小的那瓶放最前面
插入排序:机械臂拿起一瓶,往前找位置插进去
想看完整故事和代码?去"专题讲解" 标签页!
balo 和 out —— 小方写作业
老师布置了 10 道题。小方从第 1 题开始做,做到第 5 题发现太难了,先跳过,继续做第 6 题。
做到第 8 题时,小方发现后面的题自己全都会了,于是放下笔直接出去玩,不做了!
跳过一道题继续做下一道,就像 跳过本次(跳过本轮,进入下一轮);放下笔不做了,就像 退出循环(直接退出循环)。
跳过本次 跳过本轮剩下的代码,回到循环开头做下一轮。循环没结束,只是这一轮不做了。
退出循环 是"我不干了!"立刻退出整个循环,执行循环后面的代码。
balo 跳过一轮,out 跳过整个循环。balo 像"这题先跳过",out 像"作业不写了"。
判断和循环的新帮手 —— 小方的一天
早上出门,小方看了一眼窗外想:如果下雨,就带伞;否则如果下雪,就穿棉袄;否则,就穿短袖出去玩!
三种天气,三套打扮。小方只会挑其中一套穿,不会又带伞又穿棉袄。这就是 如果 / 否则如果 / 否则(if / elif / else)——从上往下挨个看,哪个条件先对,就做哪个,剩下的都不看了。
if (下雨) { 带伞 } 如果下雨,就带伞
elif (下雪) { 穿棉袄 } 否则如果下雪,就穿棉袄
else { 穿短袖 } 否则(不下雨也不下雪),就穿短袖
repeat(5) 就是"做 5 次",和 for i in range(5) 一样,但更简单,不用管变量 i。就像体育老师喊"做5个深蹲",小方不用数,做够 5 个就行。
for i = 1 to 10 是"从 1 数到 10",i 第一次是 1,最后一次是 10。就像数楼梯:1、2、3……一直数到 10。注意:这里从 1 开始数,不是从 0 开始哦!
中午吃饭,小方一口一口地吃。他心里想:一直吃,吃到饱就停下!吃饱了就放下筷子,不吃了。
这就是 跳出循环(break)——在循环里遇到 break,立刻不做了,跳出循环去做后面的事。和小方"吃到饱就停"一模一样!
forever { 吃一口; if (饱了) { break } } 一直吃,饱了就停
print("吃饱啦!") 跳出循环后做这件事
if/elif/else 是"挑一个做",repeat 是"做 N 次",for i=1 to N 是"从1数到N",break 是"不干了,跳出循环"。
排序三兄弟 —— 碰倒饮料
小方赶着上学,一不小心碰倒了正在售卖的一排饮料。旁边有个机械臂,会把饮料认成 1 2 3 4 5 6 7。
小方看到的是红橙黄绿青蓝紫,他有点急,分不清饮料的顺序。他看到机械臂旁有个操控面板,需要操控机械臂把饮料归位……
机械臂有 三种操控方法,就是排序三兄弟:冒泡、选择、插入。
机械臂每次拿起相邻的两瓶,如果顺序错了就交换。一直重复,最大的那瓶会像气泡一样"浮"到最后。
机械臂每次从剩下的饮料里找出最小的那瓶,放到最前面。然后从剩下的里再找最小的,放第二个位置……
机械臂拿起一瓶饮料,往前找它该放的位置,插进去。就像整理手里的扑克牌:拿一张,插到合适的位置。
递归 —— 冰淇淋排队
小方要给方琪买冰淇淋,方琪太热了。小方到冰淇淋店发现前面有好多人,他问前面的人:"你是第几个?"
前面的人说:"我不知道,我再问问前面的。"前面的人又问前面的人……一直问到第一个人。
第一个人说:"我是第 1 个!"然后答案往回传:"我是第 2 个""我是第 3 个"……传到小方,小方知道自己是第 15 个。
递归就是这样:先递过去(问前面的人)→ 再归回来(答案传回来)。
1. 递:函数里调用自己(问前面的人)
2. 终点:必须有一个不再问下去的条件(第一个人),否则永远问不完!
二分查找 —— 猜数字游戏
小方心里想一个 1 到 100 的数,让方琪猜。方琪不瞎猜,她先猜中间的 50。
小方说"大了",方琪就知道答案在 1-49,再猜中间的 25。小方说"小了",答案在 26-49,猜 37……
每次猜中间,排除一半!不到 7 次就能猜中。这就是二分查找(每次砍一半,快速找到)。
二分查找只在已经排好序的列表里管用。因为排好序,才能知道目标在左半边还是右半边。
最大公约数 —— 分糖果
小方有 48 颗糖,方琪有 18 颗糖。他们想把糖分成若干份,每份一样多,且没有剩余。
每份最多能放几颗?这就是求 最大公约数(两个数都能整除的最大的那个数)。
古希腊数学家欧几里得有个巧办法叫辗转相除:大数除以小数取余数,余数变新数,一直到余数为 0。
界面操作指南 · 基本操作
第一次用代码世界?先学这些基本操作,后面才看得懂积木怎么用!
界面操作指南 · 项目管理
怎么保存自己的作品?怎么用别人的模板?这里全告诉你。
Git 版本管理 —— 像游戏存档
做项目最怕改坏了找不回来!Git 就像游戏的"存档点",每完成一点就存一下,改坏了能回到好的版本。
界面操作指南 · 角色管理
游戏里需要角色!代码世界不会自动给你一个默认角色,你需要自己创建。怎么加?看这里。
角色属性面板 —— 给角色改名、调大小
每个角色都有自己的"身份证"——属性面板。在这里可以改角色的各种设置,就像角色扮演游戏里给角色加属性。角色默认有圆角外观,而且可以直接在舞台上拖动来调整位置!
任务模式入门
沙盒模式入门
代码模式入门
联机模式入门
命令台使用指南
命令台是沙盒底部的输入框,可以直接输入命令控制代码世界!
舞台底部按钮说明
舞台底部有一排控制按钮,用来运行和管理你的程序:
文件树使用说明
文件树在编辑区左侧,管理项目的所有代码文件:
顶部工具栏说明
编辑器顶部有一排工具按钮:
代码片段使用
代码片段是保存常用代码的"小抄",可以随时插入到编辑器中:
界面布局介绍
代码世界的界面分成几个区域,每个区域都有不同的作用,先认识它们,编程会更轻松:
纯代码模式快捷指令
纯代码模式下,左侧的积木面板会变成"快捷指令查看",帮助新手快速理解代码。分类展开和收起都有平滑的动画效果。
文件夹指定角色
通过给文件夹指定角色,可以让不同的代码作用于不同的角色,做出更丰富的游戏。
舞台 500×500 说明
舞台变大了,能容纳更多内容,做出更丰富的游戏!舞台上初始没有角色,需要自己创建。角色有圆角外观,还可以用鼠标拖动来调整位置。
循环监视器 —— 看看循环在干嘛
当你写了永远循环(forever)在跑时,舞台右上角会冒出来一个小小的"循环监视器"窗口,像一个小屏幕,专门盯着你的循环。
全局搜索 —— 一秒找到东西
项目做大了,文件、文件夹、角色越来越多,怎么快速找到?用全局搜索!
PLT 电路板 —— 像搭积木一样造电脑
PLT(可编程逻辑训练器)是代码世界的电路设计工具,用芯片和连线搭建逻辑电路!

① 按住输出引脚(右侧小圆点)
② 拖动鼠标——出现金色虚线预览
③ 松到输入引脚(左侧小圆点)——完成!
右键或拖到空白取消。
垃圾桶 —— 如何删除积木
沙盒右下角有一个红色扇形垃圾桶,是删除积木的唯一工具。
舞台全屏 —— 放大看角色表演
舞台右上角有全屏按钮 ⛶,点击弹出独立黑色大画布。
积木分类对照表 —— 运动 vs 外观
沙盒里积木分两个独立分类,别找错地方!
素材库 —— 给角色换图片
沙盒的角色配图系统,快速选择和导入角色外观。
Git 版本管理 —— 更友好的说明
沙盒的 Git 面板(分支树按钮 🌿)虽然界面看起来"技术宅",但其实用起来很简单:
积木商城 —— 扩展更多玩法
代码世界有一个"积木商城",里面有很多扩展积木包,能做更多好玩的东西!
绘画撤销 —— 画错了别怕
在绘画面板画角色时,画错了怎么办?不用擦掉重来,用撤销按钮!
代码撤销 —— Ctrl+Z 救命快捷键
写代码时不小心删多了?改错了?别慌,Ctrl+Z 是程序员的"救命稻草"!
== 和 is —— 两种相等判断
小方有两个一模一样的玩具车,但它们不是同一辆。== 问的是"长得一样吗",is 问的是"是同一个东西吗"。
在代码世界里,== 和 is 效果一样——都是判断两个东西是否相等。写哪个都行,选自己顺手的!

if (分数 == 100) { print("满分!") }
if (分数 is 100) { print("满分!") } // 和上面一样
if (名字 == "小方") { print("是你!") }
if (名字 is "小方") { print("是你!") } // 和上面一样
调试工具 —— 给程序做"体检"
小方写了一个很长的程序,但运行结果不对。他需要一个"侦探工具"来找出问题在哪里。
调试工具就像给程序做"体检"——断点让程序暂停在某一行,单步执行一行一行慢慢走,变量监视盯着变量的值变化。

画板与角色造型 —— 画自己的角色
小方不想只用现成的角色,他想自己画!画板就是他的画布,能画角色、画多个造型、切换造型做动画。
一个角色可以有多个造型(不同的样子),像翻书一样切换,就能做出走路、跑步、跳跃的动画!

forever {
nextcost // 切下一个造型
wait(0.2) // 等0.2秒
} // 循环切换,小方就像在走路!
main() 入口 —— 程序从哪里开始
每个故事都有"第一页",每个游戏都有"开始按钮"。在代码世界里,main() 就是程序的"第一页"——点绿旗后,电脑从 main() 开始一行一行执行。
在图形化模式里,你拖的是"当绿旗被点击"积木(click flag);在代码模式里,你写的是 main()。它们是同一个东西!

main() {
walk(10)
print("小方出发啦!")
}
// 点绿旗后,小方走10步,然后说话
fn 函数简写 —— 三种写法任你选
小方学会了三种写函数的方法:fn(最短)、Function(完整写法)、f(x)(数学风格)。三种写法效果完全一样,就像"你好""您好""嗨"——都是打招呼!

// 写法1:fn 简写法(推荐!最短最好打)
fn 跳一下() { jump() }
// 写法2:Function 完整写法
Function 跳一下() { jump() }
// 写法3:f(x) 数学风格
f(x) 跳一下() { jump() }
// 三种写法效果一模一样!
跳一下() // 调用函数也一样
以下教程对应积木商城里的扩展包。所有教程内容免费开放查看。去沙盒实际使用时才需要安装对应扩展。
Simple Computer · 逻辑门与进制
小方发现电脑的"大脑"里有很多小开关,每个开关只能开或关。聪明的人用这些开关组成了逻辑门,让电脑能"思考"!
就像你家的灯:两个开关都打开灯才亮(AND门),任意一个打开灯就亮(OR门),开关反过来(NOT门)。

if (and_gate(hit("敌人"), 血量 > 10)) { walk(-5) }
if (or_gate(edgehit, hit("墙"))) { rotright(180) }
if (not_gate(下雨)) { walk(10) }
bool 结果 = xor_gate(true, false) // 结果是 true
// 用寄存器存分数
reg = register(0) // 初始值 0
reg = register(分数) // 写入新值
// RAM 读写数据
ram_write(0, 100) // 地址 0 存入 100
int 读取 = ram_read(0) // 从地址 0 读出 100
// ALU 做计算
int 求和 = alu(3, 5, "+") // 8
int 与运算 = alu(true, false, "AND") // false
// 计时器用 Counter
int 计数 = counter(9) // 0-9 循环计数
// 译码器选地址
int 输出路 = decoder(3) // 点亮第 3 路
电脑用二进制记数——只有 0 和 1!一个 8 位二进制数能表示 0 到 255。就像 8 个灯泡,每个要么亮要么灭,组合起来能表示 256 种不同的数字。
int 十进制 = 42
str 二进制 = dec2bin(十进制) // "101010"
int 变回来 = bin2dec("101010") // 42
str 十六进制 = to_hex(255) // "FF"
int 从十六进制 = to_dec("FF") // 255
Detect · 感知世界
小方想知道周围发生了什么。他学会了"看"——看看有没有碰到东西、看看离目标多远、看看过了多长时间。
就像你闭着眼睛也能感觉到有人靠近你——小方也有这种"感觉"!

forever {
if (keydown("space")) { jump() }
if (touching("金币")) { 分数 += 1 }
if (distance("敌人") < 50) { walk(-3) }
if (timer > 60) { print("一分钟到啦!") }
if (framecount % 60 == 0) { print("每秒一次") }
}
Judge · 判断对错
小方要做很多判断:分数够不够、温度高不高、年龄在不在范围里。这些判断就像考试题目——只有一个正确答案!
判断积木就是帮小方做"对错题"的工具。

if (and(分数 > 60, 分数 < 100)) { print("良好") }
if (or(edgehit, hit("墙"))) { rotright(180) }
if (not(下雨)) { walk(10) }
if (equals(答案, "正确")) { 分数 += 10 }
if (greater(血量, 50)) { print("安全") }
if (less(距离, 30)) { print("太近了!") }
if (between(年龄, 6, 12)) { print("小朋友") }
Control · 高级流程
小方学会了更厉害的控制方法:等到条件满足再做(wait_until)、一直做到条件满足(repeat_until)、根据情况选一条路(switch_case)、做错了也有办法补救(try_catch)。
就像玩闯关游戏——等到门开了再进去,一直打直到 boss 倒下,不同关卡选不同路线,失败了还有备用计划!

wait_until(hit("门")) // 等到碰到门
walk(5) // 然后走进去
repeat_until(分数 >= 100) {
walk(1)
if (hit("金币")) { 分数 += 10 }
}
switch_case(星期) {
case 1: walk(5); break
case 2: jump(); break
default: print("休息")
}
try {
walk(100)
} catch {
print("走不动了!")
}
Unsimple CW · 物理模拟与并行
小方想做一个真实的游戏:球掉在地上会弹起来,东西推了会滑走,碰到墙会反弹。这些就是物理模拟——让游戏像真的一样!
还有一个超能力:exec_all 能让多个角色同时做不同的事,就像乐队里每个人同时演奏不同的乐器!

gravity(9.8) // 设置重力
bounce(0.8) // 80%反弹
friction(0.1) // 一点点摩擦力
collision("球", "地面") {
print("球落地了!")
bounce(0.7) // 弹起来
}
exec_all {
walk(5) // 所有角色同时走5步
}
Unsimple math · 高等数学
小方长大了,想学更厉害的数学!微积分能算出曲线下的面积,矩阵能做3D变换,向量能表示方向和速度,复数能画美丽的分形图。
这些数学工具就像给小方配了一把"万能钥匙"——能解开很多复杂的谜题!

float 斜率 = derivative("x^2", 3) // x^2在x=3的导数=6
float 面积 = integral("x^2", 0, 1) // 0到1积分≈0.333
matrix 旋转 = matrix(2, 2)
vector 速度 = vector(3, 4, 0) // 3D方向
float 平均值 = mean([1,2,3,4,5]) // 3
Simple JavaScript · JS 能力扩展
小方学会了 JavaScript 的魔法!现在他能弹出对话框、生成随机数、解析 JSON 数据、从网络获取信息。
就像小方多了一部"智能手机"——能上网查资料、能发消息、能算东西!

js_alert("欢迎来到代码世界!")
int 骰子 = js_random(1, 6)
str 数据 = js_fetch("https://api.example.com/score")
dict 成绩 = js_json_parse(数据)
js_localStorage("最高分", 100)
int 最高分 = js_localStorage("最高分")
Simple draw · 高阶画图
小方不只会画线和正方形了!现在他能画多边形、五角星、螺旋线、贝塞尔曲线,甚至能画分形雪花!
就像小方从"用蜡笔画直线"升级到了"用画笔创作艺术品"!

pendown()
pencolor("紫色")
draw_polygon(6, 30) // 画六边形
draw_star(5, 40, 15) // 画五角星
draw_spiral(10, 5, 15) // 画螺旋
draw_bezier(0,0, 50,100, 100,100, 150,0) // 画曲线
draw_fractal("雪花", 3) // 画分形雪花
penup()
Simple sprite · 精灵特效
小方想让自己变得更酷!他能播放动画、淡入淡出、旋转到指定角度、缩放到指定大小、抖动、发光!
就像小方学会了"变身魔法"——能变出各种酷炫的特效!

play_anim("走路")
fade_to(0, 2) // 2秒内消失
fade_to(100, 1) // 1秒内出现
rotate_to(180, 0.5) // 0.5秒转半圈
scale_to(200, 1) // 1秒内变大两倍
shake(10, 0.3) // 抖动0.3秒
glow("金色", 80) // 发出金色光芒
Simple import · 导入资源
小方想用更多素材!他能导入代码模块(别人写好的代码)、导入图片(做新角色)、导入声音(加音效和背景音乐)。
就像小方有了一个"百宝箱"——需要什么导入什么,游戏越来越丰富!

import_module("数学工具")
import_image("背景图.png")
import_sound("跳跃.mp3")
import_font("可爱字体")
Unsimple import · 函数修饰符
小方想给函数加"标签"——告诉别人这个函数返回对/错(fn bool)还是来自某个仓库(fn repo)。
就像给函数贴了"身份证"——一眼就能看出函数是干嘛的、从哪来的。

fn bool 检查碰撞() {
return hit("敌人")
}
fn repo 工具函数() {
print("这个函数来自工具仓库")
}
if (检查碰撞()) {
walk(-5)
}
什么是"造电脑"?
电脑里面有逻辑门(AND、OR、NOT 就像"和"、"或"、"不"开关),有ALU(算术逻辑单元——做计算的小工厂),有RAM(内存——临时记东西的本子),还有时钟(让一切按节奏走的小鼓手)。这些积木让你像搭乐高一样搭出自己的电脑!

ram_write(0, 5) // 把5存到内存地址0
ram_write(1, 3) // 把3存到内存地址1
a = ram_read(0)
b = ram_read(1)
result = alu(a, b, "add") // ALU算加法!
print(result) // 输出 8
}
play_note("中音1", 0.3) // 哆
play_note("中音1", 0.3) // 哆
play_note("高音1", 0.3) // 嗦
play_note("高音1", 0.3) // 嗦
play_note("高音2", 0.3) // 啦
play_note("高音2", 0.3) // 啦
play_note("高音1", 0.6) // 嗦~~~
}
代码世界里的数学工具箱
从简单的质数判断到最大公约数、最小公倍数,从阶乘到排列组合,甚至微积分和统计,这些积木让你成为数学小天才!

代码世界里的物理引擎
在这里,你可以模拟速度、密度、浮力、重力,还能玩电磁和量子!所有物理定律都变成了积木,拖一拖就能做实验。

程序员的画笔
从贝塞尔曲线(平滑弧线)到分形(无限重复的美丽图案),从滤镜(给图片加特效)到3D线框(立体图形),还有粒子系统(烟花、雪花、星空),代码就是你的画笔!

侦测就是电脑的"眼睛"
游戏里的角色不会自己"看",需要你用侦测积木来告诉它:碰到谁了?在什么位置?什么颜色?这些积木让游戏变得聪明!

FL Studio 风格的钢琴卷帘!
代码世界改用了全新的钢琴卷帘(Piano Roll)编辑器,像专业音乐软件(FL Studio)一样!左侧是音符行,右侧是时间线,点击方格就能放音符。设置好 BPM 速度,点播放就能听到你写的曲子!

5 种模式 = 5 种交通工具
代码世界底部有一个模式按钮,点一下就能换引擎。就像你要去一个地方:近就走路(Lightning),远就开车(Pro Max),特别远就坐赛车(Ultra)或高铁(Express)!
🚦 怎么选模式?一图看懂!
小提示:不确定选哪个?就用 💎 Pro Max!它是默认模式,能应对 99% 的程序。等你的程序特别简单或特别大时,再试试其他模式!

什么是 AST 解释器?
AST(Abstract Syntax Tree,抽象语法树)就像把代码变成一棵家族树。每个积木变成树上的一个节点,解释器从树根走到树叶,把每一片"叶子"的意思都理解并执行出来。这就像翻译官,把你写的"外语"翻译成电脑能懂的"母语"!
🌳 积木 → 语法树 → 运行结果
简单来说:你拖积木 → AST 把积木变成"语法树" → 解释器像小蚂蚁一样在树上爬 → 一边爬一边干活(走路、转弯、说话……)
升级后你能做什么?
✨ 写自己的积木:用 fn 关键字创建新命令(就像发明新积木)
✨ 条件判断更聪明:if/else 可以嵌套,逻辑更复杂
✨ 循环更强:repeat 和 forever 跑得更快
✨ 变量更灵活:支持数组、字符串等各种数据
✨ 报错更友好:写错了马上告诉你是哪一行错了
🔍 AST 长什么样?一个例子
假设你写了这段代码:
AST 解释器把它变成这样一棵树:
解释器先看到"repeat 4次",然后进去,依次做"walk"和"turn",做完再出来——就像查地图一样清晰!

🏃 让小方走起来!
🎯 小目标:找到 前进 积木,拖到编程区,让小方走 5步!拖积木像搭积木一样简单!
💬 小方会说话啦!
🎯 小目标:找到 输出 积木,让小方喊出 "你好"!小方想跟你做朋友呢~
↪️ 小方会转弯!
🎯 小目标:找到 右转 积木,让小方走一个"L"形路线!就像走一个直角拐弯~
🎯 瞬间移动!小方会闪现
🎯 小目标:用 移动到 积木,让小方"嗖"地一下跳到 (100, 50),再跳回 (-100, -50)!就像哈利波特的幻影移形~🪄
✏️ 小方当画家!画一条线
🎯 小目标:用 落笔 把笔放下,走几步画线,再用 抬笔 把笔抬起来!就像真的在白纸上画画~
🚦 岔路口!if 条件判断
🎯 小目标:用 如果 积木做一个"岔路口":如果 x 坐标 > 100,小方就走一步。就像路口红灯停绿灯行!
🔁 重复做!for 循环画正方形
🎯 小目标:用 重复 循环让"走+转弯"重复 4次,画出正方形!重复做就是同样的动作做多次~
🔄 一直走!while 循环走到目标
🎯 小目标:用 当循环 循环让小方一直走,走到 x > 200 自动停!就像"吃到饱才停筷子"~
while (spritex < 200) { walk(2) }📦 魔法盒子!用变量记录分数
🎯 小目标:创建一个 变量盒子叫"分数",每次加10,加5次后显示出来!变量就像一个有名字的小盒子,里面存着数字~
int 分数 = 0(盒子叫"分数",开始是0)for i in range(5) { 分数 += 10 }print(分数)📋 一排小抽屉!用列表存好友
🎯 小目标:创建一个列表(像一排有编号的抽屉),放进3个好朋友的名字,然后读出第1个!
list 好友add "小明" to 好友,再放"小红""小刚"print(read 好友 0)(注意:从0开始数!)📝 写一条便签!认识注释
🎯 小目标:用双斜杠 // 写一行注释。注释是写给你自己看的"便签条",电脑不会执行它,但会读到它~
// 这是给小方看的悄悄话walk(5)🖨️ 克隆就像复印机!复制小方
🎯 小目标:用 clone() 积木复制小方!克隆就像复印机,复制一个一模一样的小方出来~
📋 配方!定义函数画图形
🎯 小目标:定义一个"画正方形"的配方(函数),配方的"材料"是边长。然后做大正方形和小正方形!
function 画正方形(边长) { for i in range(4) { walk(边长); rotright(90) } }画正方形(30)画正方形(60)🤝 碰到一起!碰撞检测加分
🎯 小目标:用 hit("金币") 检测碰到金币,碰到了就加分!就像碰碰车撞到了会响一样~
int 分数 = 0forever { if (hit("金币")) { 分数 += 10; print(分数) } }📢 大喇叭!广播通信
🎯 小目标:一个角色用 发送广播 大喊一声,另一个角色用 接收广播 听到后回应!广播就像大喇叭,喊一声所有人都能听到~
main() { sendbc("开始") }onbc("开始") { print("收到啦!") }⌨️ 按下按键!键盘控制小方
🎯 小目标:用 当按下按键 积木响应键盘按键,按方向键让小方移动!按下按键就像按门铃,一按小方就有反应~
🖨️ 复印机大工厂!克隆系统
🎯 小目标:批量制造小方!用 clone 复制多个小方,用 onclone 让每个克隆体有自己的任务!克隆就像复印机,按一下就多一个~
for i in range(5) { clone() } 一次造5个小方📻 对讲机!广播消息传递
🎯 小目标:让不同角色通过 发送广播 和 接收广播 互相传话。广播就像大喇叭,喊一声所有人都能听到~
main() { sendbc("集合!") }onbc("集合!") { gotoxy(50, 0); print("来啦!") }onbc("集合!") { gotoxy(-50, 0); print("到!") }🎨 神笔小方!用画笔来画画
🎯 小目标:用 落笔(落笔)+ 走动 = 画画!落笔就像把笔放在纸上,小方边走边画,画出你想要的图形~
🏆 超级挑战!做个小游戏
🎯 小目标:把学过的都用上!键盘移动小方 + 碰到金币加分 + 广播通告胜利!做一个真正的迷你游戏~