编辑器详解

编辑器详解

> LeekScript 教程

你要在编辑器里开发你的 AI。想进一步了解 AI,请前往 LeekScript 教程。顶部栏可以用来管理你的 AI。

!编辑器

管理 AI

在左侧栏上单击鼠标右键,就能轻松创建一个 AI。右键同样可以用来创建文件夹,然后通过拖放把 AI 文件放进去。 右键单击一个 AI 文件会弹出一个选项菜单,可以重命名或删除该文件。

顶部栏的“文件”按钮会显示一个选项菜单,可以用来新建 AI 文件或文件夹,也可以保存或删除文件或文件夹。

顶部栏右侧显示所有已打开的文件,点击其中任意一个即可切换过去。

在左侧栏底部,可以看到当前打开的 AI 的统计信息,例如行数和字符数。

最后,底部栏会提示你的错误,以及它们位于哪个文件的哪一行(我?犯错?)。点击某条错误,就能直接跳转到对应位置。

选项

顶部栏中以两个齿轮表示的“选项”按钮会打开一个菜单,你可以在这里调整编辑器的显示效果、字体大小、行高和配色主题,还可以设置自己的编码偏好。 !选项 例如,你可以开启或关闭变量/函数的自动补全,或者括号和花括号的自动闭合。最后一个文本区块列出了编辑器的快捷键:

测试战斗

“测试”按钮会是你最得力的帮手。它让你可以使用一个战斗生成器,在受控的环境中测试你的 AI。你可以在其中选择自定义地图、参战的韭葱以及它们的 AI。

准备战斗

“场景”选项卡用来创建战斗场景:哪根韭葱对战哪根韭葱,在什么模式下(单人、团队、大逃杀……),使用哪些 AI。系统默认提供了几个测试 AI,分为 4 个难度等级:

“韭葱”选项卡用来创建和修改自定义的测试韭葱。你可以随意选择它们的属性、武器和芯片。

“地图”选项卡用来创建自定义的测试地图。

“高级”中的“种子”选项让你选择一个数字,作为战斗伪随机数生成器的种子。“啥玩意儿?”你可能会问。其实很简单:战斗中发生的一切(初始位置、行动顺序、效果强度……)有一部分是由伪随机数生成器决定的。种子决定了使用“哪一个生成器”。总之,使用同一个数字,你就会得到一模一样的战斗!这用来测试 AI 的改动或者修 bug 再合适不过了(bug?我的 AI 里有 bug????)

开战!

战斗开始后,你会在一个与菜园中相同的战斗播放器里观看测试战斗,地图则是一张专门的测试地图。

战斗总结页面会显示两个普通战斗总结里没有的按钮: !战斗结束按钮

“返回编辑器”按钮会把你带回到你刚才的工作进度。 “再来一场”按钮会用完全相同的参数重新发起一场新的测试战斗。如果你指定了种子,这场新战斗就会与之前完全一样。

拆分代码

你的韭葱一次只能装备一个 AI。不过你可以借助 include 函数拆分代码,让它更易读。

例如:

include("Deplacements");

这条语句会引入 AI “Deplacements”的内容。也就是说,被引入的 AI 的全部内容会被复制到调用 include 函数的位置。

调用 include 时必须写明要引入的 AI 的名字,而且名字要放在引号里。

比如 AI “Deplacements”包含以下内容:

// 向敌人移动 moveToward(getNearestEnemy());

那么,如果你有一个引入了“Deplacements”的主 AI:

// 装备武器 setWeapon(WEAPON_PISTOL);

include("Deplacements");

// 攻击敌人 useWeapon(getNearestEnemy());

执行代码时,它就会变成这样:

// 装备武器 setWeapon(WEAPON_PISTOL);

// 向敌人移动 moveToward(getNearestEnemy());

// 攻击敌人 useWeapon(getNearestEnemy());

请理解,你的代码内容并不会改变。就算你把所有代码都写在同一个 AI 里,结果也完全一样。当 AI 变得越来越庞大时,include 能让代码更易读、更有条理。

总结

你会在编辑器里待上不少时间,对着代码瞪大眼睛。所以,挑一个合适的主题和字体大小,免得眼睛太快疲劳。

现在你已经准备好迎接接下来的内容了。是时候开始写代码了!