> 教程
一个列表用于按特定顺序存储若干个值。
您可以使用以下语法创建列表:
列表中的第一个位置是位置 0。您可以使用以下方式访问列表的特定元素:
在文档的“列表”部分,有许多函数可用于处理列表。最值得注意的是:
for in 循环遍历列表您可以使用简单的“for”循环遍历列表中的每个值,如下所示:
但是有一个 for 循环的变体,可以更简单地迭代列表的每个值,即 for in 循环。下面的代码与前面的代码等效,但更简洁:
我们当前的 AI 有一个问题,你可能已经注意到了:当敌人快死了时,我们的韭菜会在使用武器之前使用它的增强、治疗、护盾,而它可以杀死敌人!
为了在战斗结束时改善这种情况,我们会估计我们可以对敌人造成的伤害,以了解我们是否可以完成它。
我们从使用 getWeaponEffects 函数开始,该函数列出了武器的效果:
效果本身是一个包含以下 6 个元素的列表:[type, min, max, turns, targets, modifiers]。该效果的最终伤害计算如下:
将伤害加到总伤害上:
我们以一个条件结束:如果总伤害大于敌人的生命,我们将杀死他:我们攻击!否则,我们等待要点:
> 提示:您可以使用 list[2:8] 语法访问列表的范围。
> 提示:你可以嵌套列表:list in a list [ [1, 2, 3] ] 和 access to list in a list: liste[0][0]
##❓测验
列表有什么用?
存储多个值 排序值 并行执行指令 执行多项计算
哪些代码有效?
var a = [1, 2, 3] a[0] + a[2] var [a] = [1, 2] var[1, 2, 3] count([1, 2, 3]) [ [1, 2], [3, 4], [5, 6] ] list[5][10]
```韭菜 // 如果没有装备,我们拿走枪 如果(getWeapon()== null){ 设置武器(WEAPON_PISTOL) }
// 我们得到最近的敌人 变种敌人= getNearestEnemy()
// 我们向对手敬礼 如果(getTurn()== 1){ 说(“嗨”+ getName(敌人)+“!”) }
// 我们向敌人前进 moveToward(敌人)
var effects = getWeaponEffects() // 效果列表 var total = 0 // 我们将计算所有的伤害 for (var effect in effects) { // 迭代所有的效果 if (effect[0] == EFFECT_DAMAGE) { // 如果效果是伤害 var minDamage = effect[1] // 最小武器伤害 var BoostedDamage = minDamage * (1 + getStrength() / 100) // 强度增加 var FinalDamage = BoostedDamage * (1 - getRelativeShield(enemy) / 100) - getAbsoluteShield(enemy) // 减少子弹
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.