LeekScript 2(原名 LeekScript 1.1)是 Leek Wars 的编程语言 LeekScript 的第二个版本,于 2021 年 2 月 28 日发布。它的目标是清理语言、修复问题,并加入面向对象编程。
由于这一版本对语言的运作方式做了深度改动,它不向下兼容,需要用户在编辑器中手动启用。
版本 2 是迈向 2016 年预告的未来版本的一步。许多计划中的功能已经在版本 2 中实现,让语言得以逐步演进;这些功能对编写复杂的 AI 大有裨益。
迁移指南请看这个专门页面:将 LeekScript 1 迁移到 2。
加入面向对象编程:类和对象。关于这项新功能的完整文档,请看面向对象编程页面。
关键字 new、class、extends、static、public、protected、private、implements、interface、constructor、this、super 和 instanceof 被保留给面向对象编程使用,因此不能再用作变量名或函数名。
非基本类型的值,也就是数组和对象,默认按引用传递。基本类型的值(数字、布尔值、字符串)始终会被复制。
@ 语法已经没有用处,因此在所有场合都已弃用。在 LeekScript 2 中无法创建指向基本类型值的引用。
可以在数组(以及对象)中放入引用,从而以合理的开销构建复杂和/或递归的结构。
在版本 1 中很难实现、在版本 2 中却非常容易的数据结构举例:
新增函数 clone(valeur, [level]),用于精确地克隆一个值:
编辑器会返回多个语义错误,而不再只返回一个(LS 1 中也可用)。


每个错误下方都会显示完整的调用栈,而以前只显示一行(LS 1 中也可用)。

当然,你仍然可以照常使用分号。 (LS 1 中也可用)
数组大小的限制已被取消,因为操作数的开销已足以限制数组的使用。
修复 arrayFilter:数组会被正确地重新索引,不会留下 null 值。
修复字符串 "\\" 的转义问题,现在会正确显示一个 \,而不是两个。
修复跨多个文件声明全局变量的问题。
修复 ^= 运算符:它现在是按位 XOR(异或),而不再是乘方。
shuffle 函数现在会使用绑定到战斗种子的随机数生成器,因此在种子相同时结果是确定的。以前它可能导致由同一个种子生成的两场战斗出现差异,从而影响测试。
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.