CodeCombat代码全记录(Python学习利器)--边地森林(第二章)代码6
发布日期:2021-05-07 10:58:02 浏览次数:17 分类:精选文章

本文共 3737 字,大约阅读时间需要 12 分钟。

以静制动

# 你可以将一个if语句放到另一个if语句当中。# 你必须注意这些if语句是如何互相影响的。# 请确保代码缩进正确!# 从外层if/else结构开始会有帮助。# 使用注释为内层if/else占位预留空间:while True:    enemy = hero.findNearestEnemy()    # 如果有敌人出现,那么就...    if enemy:        # 使用distanceTo创建一个距离变量。        distanceToEnemy = hero.distanceTo(enemy)        # 如果敌人与你的距离小于5米,那么就攻击。        if distanceToEnemy < 5:            hero.attack(enemy)        # 否则(敌人还离得很远),那么就使用shield。        else:            hero.shield()    # 否则(没有敌人)...    else:        # …那么,回到X位置。        hero.moveXY(40, 34)

agrippa守卫战

while True:    enemy = hero.findNearestEnemy()    if enemy:        # 用 distanceTo 获取与敌人的距离。        distance = hero.distanceTo(enemy)        # 如果距离小于5米...        if distance < 5:            # ...如果"cleave"技能准备好了,就用cleave干掉他们!            if hero.isReady("cleave"):                hero.cleave(enemy)            # ...否则,仅仅进行普通攻击。            hero.attack(enemy)

agrippa守卫战A

while True:    enemy = hero.findNearestEnemy()    if enemy:        # 用 distanceTo 获取与敌人的距离。        distanceToEnemy = hero.distanceTo(enemy)        # 如果距离小于5米...        if distanceToEnemy < 5:            # ...如果"cleave"技能准备好了,就用cleave干掉他们!            if hero.isReady("cleave"):                hero.cleave(enemy)            # ...否则,仅仅进行普通攻击。            hero.attack(enemy)

agrippa守卫战B

while True:    enemy = hero.findNearestEnemy()    if enemy:        pass  # 用你自己的代码替换这行。        # 用 distanceTo 获取与敌人的距离。        distance = hero.distanceTo(enemy)        # 如果距离小于5米...        if distance < 5:            # ...如果"cleave"技能准备好了,就用cleave干掉他们!            if hero.isReady("cleave"):                hero.cleave(enemy)            # ...否则,仅仅进行普通攻击。            hero.attack(enemy)

村庄守卫

2个嵌套的if如果关联关系很近,那我们可以写成一句话,用and连起来!例如此代码中的如果发现了敌人,并且劈斩技能已经准备好。

# 这个函数攻击最近的敌人。def findAndAttackEnemy():    enemy = hero.findNearestEnemy()    if enemy:        hero.attack(enemy)# 定义一个函数来劈斩敌人(只在劈斩就绪时)def findAndCleaveEnemy():    # 找到最近的敌人:    enemy =hero.findNearestEnemy()    # 如果敌人存在:    if enemy and hero.isReady("cleave"):        # 如果"cleave"就绪了:            # 是时候使用劈斩了!            hero.cleave(enemy)# 在主循环中,巡逻、劈斩和攻击。while True:    # 移动到巡逻点,劈斩并攻击。    hero.moveXY(35, 34)    findAndCleaveEnemy()    findAndAttackEnemy()        # 移动到另一点:    hero.moveXY(60, 31)    # 使用findAndCleaveEnemy函数:    findAndCleaveEnemy()    # 使用findAndAttackEnemy函数:    findAndAttackEnemy()

边地之叉

你需要渐渐的学会定义你自己的函数,传递参数的函数!!并调用相关参数。

# 一大波食人魔正在到来!# 使用 checkAndAttack 函数让代码易读。# 这个函数有一个参数。# 参数是一种给函数传递信息的方式。def checkAndAttack(target):    # target参数只是一个变量!    # 它包含了函数调用时的参数。    if target:        hero.attack(target)    hero.moveXY(43, 34)while True:    hero.moveXY(58, 52)    topEnemy = hero.findNearestEnemy()    checkAndAttack(topEnemy)    # 移动到底部的X标记处。    hero.moveXY(58, 16)    # 创建名为 bottomEnemy 的变量,寻找最近敌人。    bottomEnemy = hero.findNearestEnemy()    # 使用 checkAndAttack 函数,并使用 bottomEnemy 变量。    checkAndAttack(bottomEnemy)

村庄守护神

你需要渐渐的学会定义你自己的函数!!

# 食人魔矮人来袭!保护镇子!# 定义你自己的函数来对抗敌人!def cleaveOrAttack():    # 在函数中,找到敌人,然后劈斩或是攻击它。    ogre = hero.findNearestEnemy()    if ogre:        if hero.isReady("cleave"):            hero.cleave(ogre)        # 否则,攻击食人魔:        else:            hero.attack(ogre)# 在巡逻点之间移动并调用函数。while True:    hero.moveXY(35, 34)    # 使用上面定义的cleaveOrAttack函数。    cleaveOrAttack()        hero.moveXY(47, 27)    # 再次调用函数。    cleaveOrAttack()        hero.moveXY(60, 31)    # 再次调用函数。    cleaveOrAttack()

造币场

你之前的鞋的速度可能跟不上了,时间是有限的,试着换双速度快的鞋!!

# 差役试图偷取金币# 编写一个函数,在差役盗取金币前将其干掉def pickUpCoin():    coin = hero.findNearestItem()    if coin:        hero.moveXY(coin.pos.x, coin.pos.y)# 在下方写一个攻击敌人的函数attackEnemy。# 寻找最近的敌人,如果出现敌人就进行攻击def attackEnemy():    enemy = hero.findNearestEnemy()    if enemy:        hero.attack(enemy)while True:    attackEnemy() # ∆ 在写好 attackEnemy 函数后消除这里的注释。    pickUpCoin()
上一篇:ansible离线安装操作手册(含所有安装包内容)
下一篇:某公司运维岗位笔试题5

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2025年04月03日 05时15分37秒