codecombat极客战记森林21-40通关代码

时间:2024-05-18 18:57:32

codecombat极客战记森林21-40通关代码

所有代码均使用python编写

21.强攻ATETH塔

codecombat极客战记森林21-40通关代码

hero.moveXY(55, 14)
hero.moveXY(92, 18)

# 在红色的 X 位置建造一个火焰陷阱
hero.buildXY("fire-trap", 92, 18)
# 撤退到木的 X 位置,来避免伤害。
hero.moveXY(55, 14)
# 等雇佣兵发现闪亮的火焰陷阱
# 进入营地,放置火焰陷阱在红色的 X 位置
hero.moveXY(89, 52)
hero.buildXY("fire-trap", 89, 52)
hero.moveXY(60, 62)
hero.buildXY("fire-trap", 60, 62)
# 冲你的部队喊撤退(提示:使用 say 命令, "Retreat!")
hero.say("Retreat!")
# 逃回到左边的木的 X 位置
hero.moveXY(-17, 38)

22.森林劈斩者

codecombat极客战记森林21-40通关代码

23.盾击

codecombat极客战记森林21-40通关代码

# 用shield盾牌和cleave顺势斩在两波进攻中活下来
# 如果cleave顺势斩没有准备好,就用你的shield盾牌技能。
# 你将会需要至少142健康值来保证活下来
while True:
    enemy = hero.findNearestEnemy()
    ready = hero.isReady("cleave")
    if ready:
        hero.cleave(enemy)
    else:
        hero.shield()
        #hero.attack(enemy)

24.BURLS教你学布尔

codecombat极客战记森林21-40通关代码

# 布尔值要么是真 True 要么是假 False
# == 表示 ”等于吗“?
# 所以, A == B 是在问:”A 是等于 B吗?“
# 答案会是一个布尔值!
# 如果太难了,点一下”Hints“ 提示按钮!

# 问题: 2 == 3 
# 回答正确的答案:
hero.say(False)

# 问题: 3 == 3
# 回答 True 真 或者 False 假 2:
hero.say(True)

# 问题: "Three" == 3
# 回答 True 真 或者 False 假 3:
hero.say(False)

# 问题: "Three" == "Three"
# 回答 True 真 或者 False 假 4:
hero.say(True)

# 问题: 1 + 2 == 3
# 回答 True 真 或者 False 假 5:
hero.say(True)

25.奥法盟友codecombat极客战记森林21-40通关代码

# 拿下那些兽人 
while True:
    enemy = hero.findNearestEnemy()
    if enemy:
        if hero.isReady("cleave"):
            hero.cleave(enemy)
        else:
            
            hero.attack(enemy)

26.死亡之触

codecombat极客战记森林21-40通关代码

# 在短距离中释放你的『吸取生命』技能。
# 使用你的法丈在远距离攻击。

while True:
    enemy = hero.findNearestEnemy()
    if enemy:
        distance = hero.distanceTo(enemy)
        if distance < 15:
            # 在敌人里释放『吸取生命』技能。
            hero.cast("drain-life", enemy)
        else:
            # 使用你的盟友攻击敌人。
            hero.attack(enemy)

27.修骨者

codecombat极客战记森林21-40通关代码

# 拯救盟友的士兵来突围
while True:
    if hero.canCast("regen"):
        bernardDistance = hero.distanceTo("Bernard")
        if bernardDistance < 10:
            # Bernard需要治疗!
            hero.cast("regen", "Bernard")
        
        # 使用『if』和『distanceTo』来治疗 "Chandra"
        # 如果她小于10米的距离。
        changraDistance = hero.distanceTo("Chandra")
        if changraDistance < 10:
            # Bernard需要治疗!
            hero.cast("regen", "Chandra")
        
    else:
        # 如果你没有执行 regen,使用 if 和 distanceTo 
        # 来攻击那些小于一定距离的敌人 hero.attackRange.
        enemy = hero.findNearestEnemy()
        
        if enemy:
            hero.attack(enemy)
        

28.矮人蜂拥而至

codecombat极客战记森林21-40通关代码

while True:
    # 检查与最近敌人的距离
    enemy = hero.findNearestEnemy()
    # 如果它接近到10m以内,对它使用cleave!
    distance = hero.distanceTo(enemy)
    if distance < 10:
        hero.cleave(enemy)
    # 否则,攻击某名字的宝箱(“Chest”)
    else:
        hero.attack("Chest")

29.边地僵局

codecombat极客战记森林21-40通关代码

# 矮人正在攻击!
# 攻击会有规律的一波波袭来。
# 可以的话,使用劈斩来清理大量敌人。

while True:
    enemy = hero.findNearestEnemy()
    # 使用带有‘isReady’的if语句来检查 “cleave”
    if hero.isReady("cleave"):
        hero.cleave(enemy)
        # 劈斩!
    # 否则,如果 cleave 还没准备好的话:
    else:
        
        # 攻击最近的食人魔!
        hero.attack(enemy)

30.测距仪

codecombat极客战记森林21-40通关代码

# 食人魔正在森林中巡视!
# 使用distanceTo方法找到敌人在哪。
# 说出与每个敌人的距离,告诉大炮向哪开火!

enemy1 = "Gort"
distance1 = hero.distanceTo(enemy1)
hero.say(distance1)

enemy2 = "Smasher"
distance2 = hero.distanceTo(enemy2)
# 说出distance2变量!
hero.say(distance2)
# 找到并说出与剩余敌人之间的距离:
# 不要攻击友方!
friend3 = "Charles"

enemy4 = "Gorgnub"
distance3 = hero.distanceTo(enemy4)
hero.say(distance3)

31.eise之战

codecombat极客战记森林21-40通关代码

# 劈斩正在10秒冷却中。
# 使用 else 语句在恢复时防守。

while True:
    enemy = hero.findNearestEnemy()
    if hero.isReady("cleave"):
        hero.cleave()
    # 写个 else: 当 “cleave” 没有准备好时去做点什么。
    else:
        
        # 确保攻击了敌人:
        hero.attack(enemy)

32.边地僵局A

codecombat极客战记森林21-40通关代码

# 矮人正在攻击!
# 攻击会有规律的一波波袭来。
# 可以的话,使用劈斩来清理大量敌人。

while True:
    enemy = hero.findNearestEnemy()
    # 使用带有‘isReady’的if语句来检查 “cleave”
    ready = hero.isReady("cleave")
    if ready:
        # 劈斩!
        hero.cleave(enemy)
        #hero.say("大招来了,一刀秒你们")
    # 否则,如果 cleave 还没准备好的话:
    else:
        # 攻击最近的食人魔。
        hero.attack(enemy)

33.边地僵局B

codecombat极客战记森林21-40通关代码

# 矮人正在攻击!
# 攻击会有规律的一波波袭来。
# 可以的话,使用劈斩来清理大量敌人。

while True:
    enemy = hero.findNearestEnemy()
    # 使用带有‘isReady’的if语句来检查 “cleave”
    if enemy:
        if hero.isReady("cleave"):
            hero.cleave(enemy)
        # 劈斩!
        
    # 否则,如果 cleave 还没准备好的话:
        else:
            hero.attack(enemy)
        # 攻击最近的食人魔!

34.收割小食人魔

codecombat极客战记森林21-40通关代码

# 铲除所有遗留的小食人魔
# 确保你有足够的护甲。
while True:
    enemy = hero.findNearestEnemy()
    ready = hero.isReady("cleave")
    if ready:
        hero.cleave(enemy)
    else:
        hero.attack(enemy)

35.敏捷的匕首

codecombat极客战记森林21-40通关代码

# 长距离用你的弓,短距离用匕首
while True:
    enemy = hero.findNearestEnemy()
    if enemy:
        distance = hero.distanceTo(enemy)
        if distance < hero.throwRange:
            # 向敌人扔你的匕首
            hero.throw(enemy)
            
        # else:
            # 用你的弓攻击敌人
            # hero.attack(enemy)

36.弹片

codecombat极客战记森林21-40通关代码

# 使用炸药干掉食人魔
# 然后用你的弓干掉他们

while True:
    enemy = hero.findNearestEnemy()
    if enemy:
        if hero.isReady("throw"):
            distance = hero.distanceTo(enemy)
            # 如果食人魔距离多于15米的时候,扔炸药炸他
            # 使用 if 来比较距离和15
            if distance > 15:
                hero.throw(enemy)
            # 使用 else 来攻击它如果你不能够炸它
           
        else:
            hero.attack(enemy)

37.LONG-RANGE DIVISIONcodecombat极客战记森林21-40通关代码

# Destroy the mines!
# Use `say` to call out the range to the mines.
# Use division to calculate the range.
enemy = hero.findNearestEnemy()
distanceToEnemy = hero.distanceTo(enemy)
# Say first Range: distanceToEnemy divided by 3
hero.say(distanceToEnemy/3)
hero.say("Fire!")
# Say second range: distanceToEnemy divided by 1.5
hero.say(distanceToEnemy/1.5)
hero.say("Fire!")

# Say these things for motivation. Really. Trust us.
hero.say("Woo hoo!")
hero.say("Here we go!")
hero.say("Charge!!")

# Now, use a while-true loop to attack the enemies.
while True:
    enemy = hero.findNearestEnemy()
    hero.attack(enemy)

38.帖身护卫

codecombat极客战记森林21-40通关代码

while True:
    enemy = hero.findNearestEnemy()
    distance = hero.distanceTo(enemy)
    if distance < 10:
        # 如果他们与农民太近,就攻击他们
        hero.attack(enemy)
        pass
    # 否则的话,呆在农民旁边!使用else
    else:
        hero.moveXY(40, 37)

39.发狂的小矮人codecombat极客战记森林21-40通关代码

# 又一个宝箱等待英雄打开!
# 攻击宝箱来打开它。
# 有些食人魔矮人可不会呆呆地站着挨打!
# 当食人魔离你太近时,你得学着保护你自己
while True:
    enemy = hero.findNearestEnemy()
    distance = hero.distanceTo(enemy)
    if hero.isReady("cleave"):
        # 如果劈斩就绪,优先使用劈斩:
        hero.cleave(enemy)
    elif distance < 5:
        # 攻击靠近并离你最近的食人魔矮人
        hero.attack(enemy)
    else:
        # 否则,尝试打开宝箱:
        # Use the name of the chest to attack: "Chest".
        hero.attack("Chest")

40.跃火林中

codecombat极客战记森林21-40通关代码

# 在这关,别碰恶魔石!往其他方向移动避开它们!
while True:
    evilstone = hero.findNearestItem()
    if evilstone:
        pos = evilstone.pos
        if pos.x == 34:
            # 如果恶魔石在左边,走到右边。
            hero.moveXY(46,22)
            pass
        else:
            # 如果恶魔石在右边,走到左边。
            hero.moveXY(34,22)
            pass
    else:
        # 如果没有恶魔石,那就去到中间。
        hero.moveXY(40, 22)
        pass