极客战记-道具参数-编程宝典 III
发布于 2020年1月20日


道具名称:编程宝典 III
赋予 break,while 循环和数组的使用权。
获得技能
arrays:数组将整数索引映射到数组元素(任何类型的值)。
例程:
if hero.isReady("cleave"):
hero.cleave(enemy)
else:
hero.attack(enemy)
if/else: if 语句说的是,"如果此条件为真,那就做这个"。
例程:
arr = ["this is the first element", "this is the second element"]
hero.say(arr[0])# 说出了 "this is the first element"
hero.say(arr[1]) # 说出了 "this is the second element"
hero.say(arr[len(arr) - 1])# 说出了 "this is the second element
arr[0] = 'new first element'
arr.append('a third element')# append() 函数会将元素加到数组最末尾
lastElement = arr[-1]# 可以使用-1作为索引来引用最后一个元素
break: break 语句会终止循环。
例程:
while True:
enemy = hero.findNearest(hero.findEnemies())
if not enemy:
break
hero.attack(enemy)
hero.say("/人◕ ‿‿ ◕人\")
else: else 语句可以跟在一个 if 语句的后面,这样当 if 的条件不成立时可以执行 else 后面的代码。
例程:
if hero.isReady("cleave"):
hero.cleave(enemy)
else:
hero.attack(enemy)
if/else: if 语句说的是,"如果此条件为真,那就做这个"。
例程:
# 例如:如果你看到敌人,那就去攻击它。
enemy = hero.findNearestEnemy()
if enemy:
hero.attack(enemy)
# 更多示例
enemy = hero.findNearestEnemy()
if not enemy:
# 如果*没有*敌人,那就移动…
hero.moveXY(30, 30)
elif enemy.type is "thrower":
# ……否则,如果敌人的类型 *等于* "thrower",那么攻击……
hero.attack(enemy)
elif hero.isReady("cleave") and hero.distanceTo(enemy) < 10:
# …否则,如果"cleave"就绪*且*距离*小于*10米,那就劈斩…
hero.cleave(enemy)
else:
# 否则,防御(shield)
hero.shield()
while-loop: while 循环让你可以运行很多次代码——只要条件成立。
例程:
i = 10
while i >= 0:
hero.say("Counted to " + i)
i -= 1
while-true loop:使用 while true 循环 让你一遍遍执行代码。在每行开头输入 四个空格 ,否则代码不会重复执行!
例程:
# 举例:循环以通过迷宫。
while True:
hero.moveRight()
hero.moveDown()
hero.moveRight()
hero.moveUp()
# 举例:一次又一次攻击敌人。
while True:
enemy = hero.findNearestEnemy()
if enemy:
hero.attack(enemy)