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

本文详细介绍了在游戏编程中如何使用旗子来控制英雄的行为,包括攻击、防御和移动策略。通过具体的代码示例,展示了如何应对不同场景下的敌人,如远程攻击、近战防御等。此外,还提到了在挑战关卡中如何运用策略和技能来提高生存率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

小心陷阱

这里我没有使用技能,你可以编写使用技能来攻击敌人

# 如果你试图攻击一个远处的敌人,你的英雄会忽略掉所有的旗子而朝它冲过去。
# 你需要确保你只攻击靠近自己的敌人!

while True:
    flag = hero.findFlag()
    enemy = hero.findNearestEnemy()
    
    if flag:
        # 去拔旗子。
        hero.pickUpFlag(flag)
        hero.say("我应该去把旗子拔起来。")
    elif enemy:
        # 仅当敌人的距离小于10米时才攻击。
        distance = hero.distanceTo(enemy)
        if distance < 10:
            hero.attack(enemy)

通信尸体(信号旗标)

# 你可以使用旗子来选择不同的策略
# 在这关,绿色旗子代表你要移动到旗子处。
# 遇到黑旗就意味着你要劈开旗子
# The doctor will heal you at the Red X

while True:
    green = hero.findFlag("green")
    black = hero.findFlag("black")
    nearest = hero.findNearestEnemy()
    
    if green:
        hero.pickUpFlag(green)
    elif black and hero.isReady("cleave"):
        hero.pickUpFlag(black)
        # 劈斩!
        hero.cleave(nearest)
    elif nearest and hero.distanceTo(nearest) < 10:
        # 攻击!
        hero.attack(nearest)

坚持通过森林

# 使用旗子加入战斗或者撤退。
# 如果你失败了,再次点击 提交 生成新的随机敌人,再来一次!
# You'll want at least 300 health, if not more.
while True:
    enemy = hero.findNearestEnemy()
    flag = hero.findFlag()
    if flag:
        # 捡起旗子。
        hero.pickUpFlag(flag)
    elif enemy:
        # 开打!
        hero.attack(enemy)

丰富的觅食

# 使用 if 和 else if 来处理任何情况
# 放置它来防御敌人,收集金币
# 确保你从物品商店买到伟大的盔甲,建议400点以上的健康。

while True:
    flag = hero.findFlag()
    enemy = hero.findNearestEnemy()
    item = hero.findNearestItem()

    if flag:
        # 当我发现旗子的时候发生了什么?
        hero.pickUpFlag(flag)
    elif enemy:
        # 当我找到敌人的时候发生了什么?
        hero.attack(enemy)
    elif item:
        # 当我找到一个物品的时候,发生了什么?
        hero.moveXY(item.pos.x, item.pos.y)

强攻农舍

注意控制好旗子,才可以过关!

# 士兵会慢慢到达,但是食人魔会淹没他们。
# 基本的攻击循环是不能够让你活下来的
while True:
    flag = hero.findFlag()
    enemy = hero.findNearestEnemy()
    if flag:
        #hero.say("也许我应该用旗子干点什么?")
        hero.pickUpFlag(flag)
        if hero.isReady("cleave"):
            hero.cleave(enemy)
    else:
        hero.say("好无聊")
        hero.attack(enemy)

不公平的支持

# 偷偷穿过森林,伏击萨满。
# 听从指挥官Craig 小心接近中的敌人。

# 放置旗子后,按提交。
while True:
    flag = hero.findFlag()
    enemy = hero.findNearestEnemy()
    if flag:
        # 捡起旗子。
        hero.pickUpFlag(flag)
    elif enemy:
        # 攻击视野内的敌人。
        hero.attack(enemy)

战术时机(挑战关卡)

代码建议自行编写,此处仅供参考。

# 帮助前线。
# 如果任何人溜,放回一个旗子。

while True:
    flag = hero.findFlag()
    enemy = hero.findNearestEnemy()
    if flag:
        hero.pickUpFlag(flag)
    if enemy:
        if hero.isReady("cleave"):
            hero.cleave(enemy)
        else:
            hero.attack(enemy)

林间空地末日(挑战关卡)

代码建议自行编写,此处仅供参考。

需要智商的一关,我勒个去,注意卡视角,弓箭手打你时会有击退效果,注意控制好地形。

另外使用战士职业的时候,装备也需要豪华点,这里截图供大家参考。舍不得宝石过不了关啊。。。。
在这里插入图片描述

# 一波食人魔靠近,使用旗子赢得战役!

while True:
    flag = hero.findFlag()
    enemy = hero.findNearestEnemy()
    if enemy:
        distance = hero.distanceTo(enemy)
        if distance < 3:
            hero.shield()
        else:
            hero.attack(enemy)
    if flag:
        hero.pickUpFlag(flag)
        if hero.isReady("cleave"):
            hero.cleave(enemy)
    else:
        hero.attack(enemy)

保卫要塞(挑战关卡)

试着使用定义函数去编写代码!!并使用旗子控制好你的英雄!!

# 杀掉所有进攻的食人魔
# 使用旗子远离那些危险的食人魔
def attack(enemy):
    enemy = hero.findNearestEnemy()
    if enemy:
        distance = hero.distanceTo(enemy)
        if distance < 3:
            hero.shield()
        if hero.isReady("cleave"):
            hero.cleave(enemy)    
        else:
            hero.attack(enemy)
while True:
    flag = hero.findFlag()
    if flag:
        hero.pickUpFlag(flag)
        hero.attack(enemy)
    else:
        enemy = hero.findNearestEnemy()
        attack(enemy)

碎天裂地(挑战关卡)

so easy

hero.buildXY("fire-trap", 35, 35)
hero.buildXY("fire-trap", 35, 29)
hero.moveXY(15, 31)
hero.moveXY(72, 32)

说明:由于本章的内容较多,关卡也较多,这里我们练习了一些挑战关卡给大家做示例,挑战关卡都是些自行编写代码及发挥你自己创意的关卡,建议大家都去自己动脑编写,我的代码仅供参考而已!!!

到此,第二章的所有内容就结束了!!!

还剩余挑战关卡:平原森林保卫战、森林花园、失落的维京、濒危树林之战、竞技场、野外逃亡、
边远宝藏、巨石森林、超级大的小食人魔 攻击、野马我们后续来补充代码示例。由于都是些挑战关卡,建议大家如果觉得难,可以暂且跳过,学习了后面的内容在来尝试此类关卡!!!!

下一章我们将进行第三章沙漠关卡的学习!!!!学习的内容会进一步难度提升的!!!加油加油,坚持坚持!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值