> LeekScript 教程
本指南列出了把 AI 从 LeekScript 1 迁移到 LeekScript 2 时需要检查的各个要点。关于这个版本本身的更多信息,请参阅 LeekScript 2 页面。
要在旧 AI 上启用 LeekScript 2,只需点击编辑器最下方状态栏左侧的“LeekScript 1”。在弹出的菜单中点击“LeekScript 2”即可启用。AI 会立即按照新规则重新分析。
与 LeekScript 1 不同,在 LeekScript 2 中,除原始类型的值(数字、布尔值、字符串)外,所有值都按引用传递。
因此你可以删掉代码里所有的 @。(注:目前带 @ 的代码无法通过编译。)
如果你写过使用数组之类的递归算法,一定要注意:每次调用时,都要用 clone() 函数手动复制作为参数传入的数组。
在 LeekScript 2 中,无法创建指向数字、布尔值或字符串的引用。要实现这种效果,需要把这些值封装在数组或对象里。
关键字 new、class、extends、static、public、protected、private、implements、interface、constructor、this、super 和 instanceof 已保留给面向对象编程使用,不能再用作变量名或函数名。如有冲突,需要相应地改名。
由于新规则(尤其是按引用传递),LeekScript 2 消耗的操作数可能会少得多。如果你用过基于当前操作数的条件判断,比如 if (getOperations() < 15000000),AI 的行为可能会有所不同。
arrayFilter 函数修复了一个问题:结果数组会重新编排索引,因此不会再变成带有若干空值的关联数组。如果你的算法依赖这种情况,记得更新。
^= 运算符的含义变了:在 LeekScript 1 中,它表示乘方并赋值;在 LeekScript 2 中,它表示按位异或(XOR)并赋值。
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.