# 改变while循环的条件。
# 在英雄生命值大于200滴血时,一直跑。
while hero.health > 200: # Δ 这行要改一下!
hero.moveXY(48, 24)
hero.moveXY(16, 24)
# 移动到Okar那里。
hero.moveXY(32, 40)
# 使用循环直到你有足够的击杀10个芒奇金人
attacks = 0
while attacks < 10:
# 攻击最近的敌人!
enemy = hero.findNearestEnemy()
if enemy:
hero.attack(enemy)
# 增量意味着增加1。
# 增加你的攻击统计量。
attacks += 1
# 当你完成后,撤退到伏击点。
hero.say("I should retreat!") # ∆ 别站在那儿瞎扯!
hero.moveXY(79, 33)
我比较懒,没有编写太复杂的代码,全程一杆大旗号令天下,杀无赦!!
while True:
flag = hero.findFlag()
if flag:
hero.pickUpFlag(flag)
enemy = hero.findNearestEnemy()
if enemy:
hero.attack(enemy)
其实我是最不喜欢使用旗子的,但是某些关卡你使用起来旗子发现会有很好的疗效!!
# 诱使食人魔陷入伏击!
# 当你的黄金小于25时,收集金币。
while hero.gold < 25:
coin = hero.findNearestItem()
hero.moveXY(coin.pos.x, coin.pos.y)
# 在while循环后,于白色X处建造一个"decoy"。
hero.buildXY("decoy", 72, 68)
# 当你生命值满时,挑衅侮辱食人魔。
if hero.health == hero.maxHealth:
hero.say('小B ,来打我a来打我啊!~~')
# 然后退回到红色X处。
while True:
flag = hero.findFlag()
if flag:
hero.pickUpFlag(flag)
hero.say('小B ,来打我a来打我啊!~~')
这节我们学习求余的内容:
modulo,代码中定义好了求余的内容,简化写成了mod函数。
# 躲开炮弹,收集8颗宝石。
# 小心,大炮准备开火了!
# 以一个特殊的方式缓慢移动去迷惑敌人
# 这个函数返回一个值从0到30之间(0<n<30)。
def mod30(n):
if n >= 30:
return n - 30
else:
return n
# 这一功能将会返回一个从0到40的值
def mod40(n):
# 使用一个 “if” 语句去返回正确的值
if n >= 40:
return n - 40
else:
return n
# 你不需要改变下面的代码:
while True:
time = hero.time
x = mod30(time) + 25
y = mod40(time) + 10
hero.moveXY(x, y)
# 诱捕陷阱中的食人魔。
# 该功能使英雄收集足够的金币。
def collectUntil(enoughGold):
# 虽然英雄的黄金还不够充足:
while hero.gold < enoughGold:
coin = hero.findNearestItem()
if coin:
# 找到一个硬币,并带走它:
hero.moveXY(coin.pos.x, coin.pos.y)
# 为一个诱饵收集黄金并将其制作在红色标记上。
collectUntil(25)
hero.buildXY("decoy", 40, 52)
# 最好躲起来。
hero.moveXY(20, 52)
# 使用collectUntil函数收集50个金币:
collectUntil(50)
# 在骨骼标记上建立一个 "decoy" :
hero.buildXY("decoy", 68, 22)
# 在木质标记上建立一个 "decoy":
hero.buildXY("decoy", 30, 20)
# 从死亡峡谷逃脱!
# 使用真正的求余函数走出Z字形路线。
# 该函数返回一个0到15之间的值:
def mod15(n):
while n >= 15:
n -= 15
return n
# 这个函数应该返回一个0到9之间的值:
def mod9(n):
# 当n大于或等于9时,用n减去9:
while n >= 9:
n -= 9
return n
# 不要更改以下代码:
while True:
time = hero.time
if time < 30:
y = 10 + 3 * mod15(time)
else:
y = 20 + 3 * mod9(time)
x = 10 + time
hero.moveXY(x, y)
终于到了最常用的数组章节的内容了!!新的内容,请多看提示进行学习!!
# 只攻击在敌军名称(enemyNames)数组中的敌人
# 一定要按顺序攻击! 0→1→2→3
#这里定义了一个数组
enemyNames = ["Kog", "Godel", "Vorobun", "Rexxar"]
#注意数组的索引是从0开始的
hero.attack(enemyNames[0])
hero.attack(enemyNames[1])
# 攻击 enemyNames[2]
hero.attack(enemyNames[2])
# 攻击最后一个元素。
hero.attack(enemyNames[3])
数学姿势来了,前方高能!!!如果了解机器学的想学习算法内容的童鞋,这里要多练习好好掌握了啊!!~~
新的内容,请多看提示进行学习!
# 穿过雷区
# 这个函数返回乘以次数的数字。
def mult(number, times):
total = 0
while times > 0:
total += number
times -= 1
return total
# 这个函数返回乘方的数字。
def power(number, exponent):
total = 1
# 补全函数。
while exponent > 0:
total *= number
exponent -= 1
return total
# 别修改这些代码
# 你可以在塔上找到方程的系数
tower = hero.findFriends()[0]
a = tower.a
b = tower.b
c = tower.c
d = tower.d
x = hero.pos.x
while True:
# 用三次方程求路径
y = a * power(x, 3) + b * power(x, 2) + c * power(x, 1) + d * power(x, 0)
hero.moveXY(x, y)
x = x + 5