极客战记-道具参数-编程宝典 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)