CodeCombat代码全记录(Python学习利器)--边地森林(第二章)代码3

荆棘农场

#fire-trap 火焰陷阱,会爆炸,威力极强!!
# 在村口巡逻。
# 当你见到食人魔,建造一个火焰陷阱"fire-trap"。
# 不要让任何农民受到伤害。

while True:
    hero.moveXY(43, 50)
    top = hero.findNearestEnemy()
    if top:
        hero.buildXY("fire-trap", 43, 50)

    hero.moveXY(25, 34)
    left = hero.findNearestEnemy()
    # 检查左边是否存在。
    if left:
        # 如果敌人存在,在25, 34处建造一个陷阱。
        hero.buildXY("fire-trap", 25, 34)
    
    hero.moveXY(43, 20)
    # 为下面的敌人设置一个变量。
    down = hero.findNearestEnemy()
    # 检查下面是否有敌人存在。
    if down:
        # 建造一个陷阱,如果敌人存在的话。
        hero.buildXY("fire-trap", 43, 20)

如果你觉得left不适合,你可以从新定义你的敌人方位变量,例如:leftEnemy,rightEnemy

强攻 Areth 塔

注意:本关的你的初始位置和敌人营地的2个红叉位置被敌人挡住了,这时就需要你先进行代码调试(也就是点击运行按钮,之后确认代码无误后在提交),让敌人走开,你即可找到你的初始位置和营地红叉的位置。

# The ogres are holed up in their camp
# Break through their defenses with a calculated strike!

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

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

食人魔营地

# 如果有敌人,那么就攻击它
# 否则,攻击宝箱

while True:
    # 使用if/else语句
    enemy = hero.findNearestEnemy()
    if enemy:
        hero.attack(enemy)
    hero.attack("Chest")

注意if else的用法,此关卡也可以用如下代码实现。

# 如果有敌人,那么就攻击它
# 否则,攻击宝箱

while True:
    # 使用if/else语句
    enemy = hero.findNearestEnemy()
    if enemy:
        hero.attack(enemy)
    else:
        hero.attack("Chest")

森林劈斩者

本节你将装备上新的装备,然后你拥有了技能,终于不用在枯燥的平砍了。注意技能的准备时间!!如果不会用,去函数菜单找到你的方法,查看学习如何使用技能。

# 尽可能经常使用你的新技能“cleave”

hero.moveXY(23, 23)
while True:
    enemy = hero.findNearestEnemy()
    if hero.isReady("cleave"):
        # 用“Cleave”干掉敌人!
        hero.cleave(enemy)
        pass
    else:
        # 否则(如果“cleave”还没准备好),就用你的普通攻击
        hero.attack(enemy)
        pass

Peek-a-boom!(坐看爆破!)

# Build traps on the path when the hero sees a munchkin!

while True:
    enemy = hero.findNearestEnemy()
    if enemy:
        # Build a "fire-trap" at the Red X (41, 24)
        hero.buildXY("fire-trap", 41, 24)
        pass
    # Add an else below to move back to the clearing
    else:
        # Move to the Wooden X (19, 19)
        hero.moveXY(19, 19)

竞技场《角斗场》(挑战关卡,代码可根据你的能力自行编写)

注意:AI的装备和血量是和你一样的,但是AI没有你的智商高,我们使用技能来干掉他!

# 在决斗中击败敌人的英雄!

while True:
    # 在一个循环中找到并攻击敌人
    # 当你完成的时候,提交到多人天梯系统中!
    enemy = hero.findNearestEnemy()
    if hero.isReady("cleave"):
        hero.cleave(enemy)
    else:    
        hero.attack(enemy)

边地僵局

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

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

else之战

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

while True:
    enemy = hero.findNearestEnemy()
    if hero.isReady("cleave"):
        hero.cleave(enemy)
    # 写个 else: 当 “cleave” 没有准备好时去做点什么。
    else:
        # 确保攻击了敌人:
        hero.attack(enemy)
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值