You are on page 1of 20

24/11/22, 16:20 codecombat计算机科学入门二(python)_@Within的博客-CSDN博客_扣达世界攻略

博客 下载 学习 社区 GitCode 云服务 猿如意 扣达世界攻略 搜索 登录/注册 会员中心 足迹

codecombat计算机科学入门二(python)
@Within 于 2018-04-12 16:01:00 发布 8894
收藏
10 版权
分类专栏:
codecombat

codecombat 专栏收录该内容 5 订阅 5 篇文章 订阅专栏

平原保卫战
1.

hero.buildXY("fence", 40, 53)

hero.buildXY("fence", 40, 21)

2.Winding Trail

hero.moveXY(36, 59)
hero.moveXY(37, 12)
hero.moveXY(66, 17)
hero.buildXY("fence", 71, 24)

一步走错
3.

hero.moveXY(11, 35)
hero.moveXY(35, 24)
hero.moveXY(40, 55)

hero.moveXY(77, 57)

森林逃避
4.

while True:
hero.moveXY(56,44)
hero.moveXY(40,56)
# 用 moveXY 在森林中移动,确保存活。

hero.moveXY(24,44)
hero.moveXY(24,24)
hero.moveXY(40,12)

hero.moveXY(56,24)

林中小屋
5.

hero.moveXY(19, 33)
enemy = hero.findNearestEnemy()
语句会检查某变量是否有食人魔。

# if
if enemy:
hero.attack(enemy)

hero.attack(enemy)

hero.moveXY(49, 51)

enemy = hero.findNearestEnemy()
if enemy:

https://blog.csdn.net/qq_41264674/article/details/79914912 1/20
24/11/22, 16:20 计算机科学入门二(python)_@Within的博客-CSDN博客_扣达世界攻略
codecombat
# 攻击这里的敌人:

hero.attack(enemy)
hero.attack(enemy)
hero.moveXY(58, 14)
enemy = hero.findNearestEnemy()
# 使用if语句检查敌人是否存在:

if enemy:
# 如果敌人存在,就攻击它:

hero.attack(enemy)

hero.attack(enemy)

5a. 边地伏击战
hero.moveXY(24, 42)
enemy = hero.findNearestEnemy()
if enemy:
    hero.attack(enemy)
    hero.attack(enemy)

hero.moveXY(27, 60)
enemy = hero.findNearestEnemy()
if enemy:
  # 攻击敌人,如果存在的话!
    hero.attack(enemy)
    hero.attack(enemy)

hero.moveXY(42, 50)
enemy = hero.findNearestEnemy()
# 使用if语句检查敌人是否存在。
if enemy:
    # 攻击敌人,如果存在的话!
    hero.attack(enemy)
    hero.attack(enemy)

hero.moveXY(39, 24)
# 找到最近的敌人:
enemy = hero.findNearestEnemy()
# 检查敌人是否存在:
if enemy:
  # 攻击敌人,如果存在的话!
    hero.attack(enemy)
    hero.attack(enemy)

6.Cleanup

hero.moveXY(18, 14)
enemy = hero.findNearestEnemy()
if enemy:
    hero.attack(enemy)
    hero.attack(enemy)
hero.moveXY(62, 14)
enemy = hero.findNearestEnemy()
if enemy:
    hero.attack(enemy)
    hero.attack(enemy)
hero.moveXY(62, 54)
enemy = hero.findNearestEnemy()
if enemy:
    hero.attack(enemy)

https://blog.csdn.net/qq_41264674/article/details/79914912 2/20
24/11/22, 16:20 计算机科学入门二(python)_@Within的博客-CSDN博客_扣达世界攻略
codecombat
    hero.attack(enemy)
hero.moveXY(18, 54)
enemy = hero.findNearestEnemy()
if enemy:
    hero.attack(enemy)
    hero.attack(enemy)

7.巡逻兵克星
while True:
    enemy = hero.findNearestEnemy()
    if enemy:
    # 如果有敌人,攻击它!
        hero.attack(enemy)

7a. 巡逻兵克星A
while True:
    enemy = hero.findNearestEnemy()
    if enemy:
    # 如果有敌人,攻击它!
        hero.attack(enemy)

8.野餐毁灭者
while True:
    enemy = hero.findNearestEnemy()
  # 如果有敌人,攻击它!
    if enemy:

        hero.attack(enemy)

8a. 鹰眼
while True:
    enemy = hero.findNearestEnemy()
  # 如果有敌人,攻击它!
    if enemy:

        hero.attack(enemy)

9.if 的盛宴
while True:
    enemy = hero.findNearestEnemy()
  # 使用一个 “if” 语句去检查是否有敌人存在:
    if enemy:
    # 攻击敌人,如果存在的话:
        hero.attack(enemy)

10. 村庄守护者
while True:
    hero.moveXY(35, 34)
    left = hero.findNearestEnemy()
    if left:
        hero.attack(left)
        hero.attack(left)
  # 现在移动到右侧入口。
    hero.moveXY(60, 31)
  # 找到正确的敌人。
    # 如果有正确的敌人,使用if来攻击。
    right = hero.findNearestEnemy()
    if right:
        hero.attack(right)
        hero.attack(right)

11. 荆棘农场
https://blog.csdn.net/qq_41264674/article/details/79914912 3/20
24/11/22, 16:20 codecombat 计算机科学入门二(python)_@Within的博客-CSDN博客_扣达世界攻略

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:
        hero.buildXY("fire-trap", 25, 34)

    hero.moveXY(43, 20)
    bottom = hero.findNearestEnemy()
    if bottom:
        hero.buildXY("fire-trap", 43, 20)

12.背靠背

while True:
    enemy = hero.findNearestEnemy()
  # 亦或主动出击 ...
    if enemy:
        hero.attack(enemy)
        hero.attack(enemy)
    else:
    # 亦或回到你的阵地防守。
        hero.moveXY(40, 34)

13.食人魔营地

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

        hero.attack("Chest")

14.森林劈斩者

hero.moveXY(23, 23)
while True:
    enemy = hero.findNearestEnemy()
    if hero.isReady("cleave"):

        # “Cleave” 干掉敌人!
        hero.cleave(enemy)
    else:
    # 否则(如果 “cleave” 还没准备好),就用你的普通攻击
        hero.attack(enemy)

15. Else 之战
while True:
enemy = hero.findNearestEnemy()
if hero.isReady("cleave"):
hero.cleave()

https://blog.csdn.net/qq_41264674/article/details/79914912 4/20
24/11/22, 16:20 codecombat计算机科学入门二(python)_@Within的博客-CSDN博客_扣达世界攻略
# 写个 else: 当 “cleave” 没有准备好时去做点什么。

else:
# 确保攻击了敌人:

hero.attack(enemy)

16. Sacred Glade

while True:
enemy = hero.findNearestEnemy()
if enemy:
hero.attack(enemy)
else:
hero.moveXY(30, 24)

17. 边地僵局
while True:
enemy = hero.findNearestEnemy()
# 使用带有‘isReady’的if语句来检查 “cleave”

if hero.isReady("cleave"):
# 劈斩!

hero.cleave()
# 否则,如果 cleave 还没准备好的话:

else:
# 攻击最近的食人魔!

hero.attack(enemy)

17a. 边地僵局 A
while True:
enemy = hero.findNearestEnemy()
# 使用带有‘isReady’的if语句来检查 “cleave”

if hero.isReady("cleave"):
# 劈斩!

hero.cleave()
# 否则,如果 cleave 还没准备好的话:

else:
# 攻击最近的食人魔。

hero.attack(enemy)

17b. 边地僵局 B
while True:
enemy = hero.findNearestEnemy()
# 使用带有‘isReady’的if语句来检查 “cleave”

if hero.isReady("cleave"):
# 劈斩!

hero.cleave()
# 否则,如果 cleave 还没准备好的话:

else:
# 攻击最近的食人魔!

hero.attack(enemy)

18. 测距仪
enemy1 = "Gort"
distance1 = hero.distanceTo(enemy1)
hero.say(distance1)

enemy2 = "Smasher"
distance2 = hero.distanceTo(enemy2)
# 说出distance2变量!

hero.say(distance2)

https://blog.csdn.net/qq_41264674/article/details/79914912 5/20
24/11/22, 16:20 计算机科学入门二(python)_@Within的博客-CSDN博客_扣达世界攻略
codecombat
# 找到并说出与剩余敌人之间的距离:

# 不要攻击友方!

friend3 = "Charles"
distance3 = hero.distanceTo(friend3)
#hero.say(distance3)
enemy4 = "Gorgnub"
distance4 = hero.distanceTo(enemy4)
hero.say(distance4)

19. 贴身护卫
while True:
enemy = hero.findNearestEnemy()
distance = hero.distanceTo(enemy)
if distance < 10:
# 如果他们与农民太近,就攻击他们

hero.attack(enemy)
# 否则的话,呆在农民旁边!使用else

else:
hero.moveXY(40, 37)

20. 矮人蜂拥而至
while True:

  # 检查与最近敌人的距离

    enemy = hero.findNearestEnemy()

    distance = hero.distanceTo(enemy)

  # 如果它接近到10m以内,对它使用cleave!

    if distance < 10:

        hero.cleave(enemy)

    else:

    # 否则,攻击某名字的宝箱(“Chest”)

        hero.attack("Chest")

21. 发狂的矮人
# <%= another_chest %>​
# <%= attack_chest %>​
# <%= idle_munchkins %>​
# <%= defend_yourself %>​

while True:
enemy = hero.findNearestEnemy()
distance = hero.distanceTo(enemy)
if hero.isReady('cleave'):
# <%= first_priority %>
hero.cleave()
elif distance < 5:
# <%= attack_nearest %>
hero.attack(enemy)
else:
# <%= break_open %>
# <%= use_name %>
hero.attack("Chest")

22. 跃火林中
# 在这关,别碰恶魔石!往其他方向移动避开它们!

while True:
evilstone = hero.findNearestItem()
if evilstone:
pos = evilstone.pos
if pos.x == 34:

https://blog.csdn.net/qq_41264674/article/details/79914912 6/20
24/11/22, 16:20 codecombat 计算机科学入门二(python)_@Within的博客-CSDN博客_扣达世界攻略
# 如果恶魔石在左边,走到右边。

hero.moveXY(46, 22)
else:
# 如果恶魔石在右边,走到左边。

hero.moveXY(34, 22)
else:
# 如果没有恶魔石,那就去到中间。

hero.moveXY(40, 22)

23. 以静制动
while True:
enemy = hero.findNearestEnemy()
# 如果有敌人出现,那么就...

if enemy:
# 使用distanceTo创建一个距离变量

distance = hero.distanceTo(enemy)
# 如果敌人与你的距离小于5米,那么就攻击它

if distance < 5:
hero.attack(enemy)
# 否则(这名敌人还离得很远),就使用shield

else:
hero.shield()
# 否则(没有敌人)...

else:
# … 那么,回到X位置。

hero.moveXY(40, 34)

24. 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)
否则,仅仅进行普通攻击。
            # ...
            else:
                hero.attack(enemy)

24a. Agrippa 守卫战 A


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)

否则,仅仅进行普通攻击。

            # ...
            else:

                hero.attack(enemy)

24b. Agrippa 守卫战 B


while True:

    enemy = hero.findNearestEnemy()

    if enemy:

    # 用 distanceTo 获取与敌人的距离。

https://blog.csdn.net/qq_41264674/article/details/79914912 7/20
24/11/22, 16:20 计算机科学入门二(python)_@Within的博客-CSDN博客_扣达世界攻略
codecombat
        distance = hero.distanceTo(enemy)

    # 如果距离小于5米...

        if distance < 5:

如果 “cleave”技能准备好了,就用“cleave”干掉他们!

            # ...
            if hero.isReady("cleave"):

                hero.cleave(enemy)

否则,仅仅进行普通攻击。

            # ...
            else:

                hero.attack(enemy)

25. 乡村漫游者
# 这定义了findAndAttackEnemy函数

def findAndAttackEnemy():

    enemy = hero.findNearestEnemy()

    if enemy:

        hero.attack(enemy)

# 这段代码不是函数的一部分。

while True:

  # 现在你可以使用findAndAttackEnemy在村子里巡逻

    hero.moveXY(35, 34)

    findAndAttackEnemy()

    

  # 现在移动到右侧入口。

    hero.moveXY(60, 31)

  # 使用findAndAttackEnemy

    findAndAttackEnemy()

26. 村庄守卫
# 这个函数攻击最近的敌人。

def findAndAttackEnemy():

    enemy = hero.findNearestEnemy()

    if enemy:

        hero.attack(enemy)

def findAndCleaveEnemy():

  # 定义一个函数来劈斩敌人(只在劈斩就绪时)

    enemy = hero.findNearestEnemy()

    if enemy:

        if hero.isReady('cleave'):

            hero.cleave(enemy)

# 在主循环中,巡逻、劈斩和攻击。

while True:

  # 移动到巡逻点,劈斩并攻击。

    hero.moveXY(35, 34)

    findAndCleaveEnemy()

    findAndAttackEnemy()

    

  # 移动到另一点:

    hero.moveXY(60, 31)

    findAndCleaveEnemy()

    findAndAttackEnemy()

27.村庄守护神
# 定义你自己的函数来对抗敌人!

# 在函数中找到敌人,然后劈斩或是攻击它。

def cleaveOrAttack():

    enemy = hero.findNearestEnemy()

https://blog.csdn.net/qq_41264674/article/details/79914912 8/20
24/11/22, 16:20 计算机科学入门二(python)_@Within的博客-CSDN博客_扣达世界攻略
codecombat
    if enemy:

        if hero.isReady('cleave'):

            hero.cleave(enemy)

        else:

            hero.attack(enemy)

# 在巡逻点之间移动并调用函数。

while True:

    hero.moveXY(35, 34)

  # 使用上面定义的cleaveOrAttack函数。

    cleaveOrAttack()

    hero.moveXY(47, 27)

  # 再次调用函数。

    cleaveOrAttack()

    hero.moveXY(60, 31)

  # 再次调用函数。

    cleaveOrAttack()

28.造币厂
# 差役试图偷取金币

# 编写一个函数,在差役盗取金币前将其干掉

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()

29.边地之叉
# 一大波食人魔正在到来!

# 使用 checkAndAttack 函数让代码易读。

# 这个函数有一个参数。

# 参数是一种给函数传递信息的方式。

def checkAndAttack(target):

参数只是一个变量!

    # target
  # 它包含了函数调用时的参数。

    if target:

        hero.attack(target)

    hero.moveXY(43, 34)

https://blog.csdn.net/qq_41264674/article/details/79914912 9/20
24/11/22, 16:20 codecombat 计算机科学入门二(python)_@Within的博客-CSDN博客_扣达世界攻略
while True:

    hero.moveXY(58, 52)

    topEnemy = hero.findNearestEnemy()

    checkAndAttack(topEnemy)

    

  # 移动到底部的X标记处。

    hero.moveXY(58, 16)

  # 创建名为 bottomEnemy 的变量,寻找最近敌人。

    bottomEnemy = hero.findNearestEnemy()

  # 使用 checkAndAttack 函数,并使用 bottomEnemy 变量。

    checkAndAttack(bottomEnemy)

30.盗墓者
# 森林中一座被遗忘的墓地!

# 但是食人魔紧追不舍。

# 在防御矮人的同时破开坟墓

# 这个函数应该在敌人存在时攻击,否则攻击门!

def checkToDefend(target):

  # 检查目标是否存在

    if target:

    # 如果是这样,攻击目标。

        hero.attack(target)

  # 如果没有目标,使用else去做点别的事

    else:

    # 否则攻击 "Door"

        hero.attack("Door")

while True:

    enemy = hero.findNearestEnemy()

    checkToDefend(enemy)

31.墓地阴魂
# 唯一的出口被食人魔堵住了。

# 躲着骷髅怪,并一个个击败食人魔

# 这个函数需要攻击敌人并隐藏。

def hitOrHide(target):

  # 如果'目标'存在:

    if target:

    # 攻击'目标'

        hero.attack(target)

    # 然后移动到红色标记。

        hero.moveXY(32, 17)

while True:

    enemy = hero.findNearestEnemy()

    hitOrHide(enemy)

32.捉迷藏
# 收集4个发光石,用来打败食人魔斗士。

# 如果发现发光石的话,藏起来。

def checkTakeHide(item):

    if item:

    # 物品在此,拿着它。

        hero.moveXY(item.pos.x, item.pos.y)

https://blog.csdn.net/qq_41264674/article/details/79914912 10/20
24/11/22, 16:20 计算机科学入门二(python)_@Within的博客-CSDN博客_扣达世界攻略
codecombat
    # 然后移动到营地中央(40, 34)

        hero.moveXY(40, 34)

while True:

  # 移动到右上的X标记。

    hero.moveXY(68, 56)

  # 在那里搜索一块发光石。

    lightstone = hero.findNearestItem()

  # 调用checkTakeHide,并使用参数:lightstone

    checkTakeHide(lightstone)

    

  # 移动到左上角的标记。

    hero.moveXY(12, 56)

  # 搜索发光石。

    lightstone = hero.findNearestItem()

  # 调用checkTakeHide函数。

  # 将搜索的结果作为参数传入。

    checkTakeHide(lightstone)

33. 森林矿工
# 检查工人们是否能安全通过雷区。

def checkEnemyOrSafe(target):

  # 如果目标(参数)存在:

    if target:

    # 然后攻击目标

        hero.attack(target)

  # 否则:

    else:

    # 使用say()来叫农民。

        hero.say("All clear!")

while True:

  # 移动到并检查右上的X标记。

    hero.moveXY(64, 54)

    enemy1 = hero.findNearestEnemy()

    checkEnemyOrSafe(enemy1)

    

  # 移动到左下的X标记处。

    hero.moveXY(16, 14)

  # 将findNearestEnemy()的结果存到一个变量中。

    enemy2 = hero.findNearestEnemy()

  # 调用checkEnemyOrSafe,并传递

    # findNearestEnemy的结果作为参数

    checkEnemyOrSafe(enemy2)

34.交给劈斩者
# 这里展示了如何定义一个叫作cleaveWhenClose的函数

# 函数定义了一个参数,名为target

def cleaveWhenClose(target):

    if hero.distanceTo(target) < 5:

    # 将你的攻击代码放到这里。

    # 如果cleave准备就绪,那就劈斩目标

        if hero.isReady("cleave"):

            hero.cleave()

    # 否则,使用attack攻击目标!

        else:

            hero.attack(target)

https://blog.csdn.net/qq_41264674/article/details/79914912 11/20
24/11/22, 16:20 计算机科学入门二(python)_@Within的博客-CSDN博客_扣达世界攻略
codecombat

# 这段代码不是函数的一部分。

while True:

    enemy = hero.findNearestEnemy()

    if enemy:

    # 注意在cleaveWhenClose内部,我们用target指向敌人。

        cleaveWhenClose(enemy)

35. Timberland Trap


# Define a function that accepts a parameter.

# Defeat munchkins, ignore throwers.

def cleaveWhenClose(target):

    if hero.distanceTo(target) < 5:

        if hero.isReady("cleave"):

            hero.cleave(target)

        else:

            hero.attack(target)

while True:

    enemy = hero.findNearestEnemy()

    if enemy:

        cleaveWhenClose(enemy)

36.返回荆棘农场
# 这个函数 “maybeBuildTrap” 定义了两个参数

def maybeBuildTrap(x, y):

  # 使用x和y作为移动的坐标。

    hero.moveXY(x, y)

    enemy = hero.findNearestEnemy()

    if enemy:

    # 使用 buildXY 在特定 x 和 y 处建造 "fire-trap".

        hero.buildXY("fire-trap", x, y)

        

while True:

  # 这会调用 maybeBuildTrap,并使用上方入口的坐标。

    maybeBuildTrap(43, 50)

    

  # 下面在左侧入口使用maybeBuildTrap!

    maybeBuildTrap(25, 34)

  # 在底部入口处使用“maybeBuildTrap” !

    maybeBuildTrap(43, 20)

返回荆棘农场 A
36a.
# 函数maybeBuildTrap定义了两个参数!

def maybeBuildTrap(x, y):

  # 使用x和y作为移动的坐标。

    hero.moveXY(x, y)

    enemy = hero.findNearestEnemy()

    if enemy:

    # 使用buildXY在指定xy坐标处建造一个"fire-trap"

        hero.buildXY("fire-trap", x, y)

        

while True:

  # 这会调用maybeBuildTrap,使用左侧入口的坐标。

    maybeBuildTrap(20, 34)

    

  # 下面在下方入口处使用maybeBuildTrap!

    maybeBuildTrap(38, 20)

https://blog.csdn.net/qq_41264674/article/details/79914912 12/20
24/11/22, 16:20 codecombat 计算机科学入门二(python)_@Within的博客-CSDN博客_扣达世界攻略

  # 下面在右侧入口使用maybeBuildTrap!

    maybeBuildTrap(56, 34)

36b. 返回荆棘农场 B
 # 函数maybeBuildTrap定义了两个参数!

def maybeBuildTrap(x, y):

  # 使用x和y作为移动的坐标。

    hero.moveXY(x, y)

    enemy = hero.findNearestEnemy()

    if enemy:

    # 使用buildXY在指定xy坐标处建造一个"fire-trap"

        hero.buildXY("fire-trap", x, y)

        

while True:

  # 这会调用maybeBuildTrap,使用下方入口的坐标。

    maybeBuildTrap(38, 20)

    

  # 下面在右侧入口使用maybeBuildTrap!

    maybeBuildTrap(56, 34)

  # 现在在上方入口处使用maybeBuildTrap!

    maybeBuildTrap(38, 48)

37. Agrippa 重构
def cleaveOrAttack(enemy):

  # 如果 “cleave” 技能冷却完毕,那就使用它!否则,使用普通攻击。

    if hero.isReady("cleave"):

        hero.cleave(enemy)

    else:

        hero.attack(enemy)

while True:

    enemy = hero.findNearestEnemy()

    if enemy:

        distance = hero.distanceTo(enemy)

        if distance < 5:

      # 调用上面定义的 “cleaveOrAttack” 函数

            cleaveOrAttack(enemy)

38. 封闭的十字路口
# 只在看到敌人时进行建造。

# 该函数定义3个参数。

def maybeBuildSomething(buildType, x, y):

  # 移动到参数为X 和 Y的位置

    hero.moveXY(x, y)

  # 找到最近的敌人

    enemy = hero.findNearestEnemy()

  # 如果存在敌人

    if enemy:

    # 那么使用buildXY,参数buildType, x, 和 y

        hero.buildXY(buildType, x, y)

while True:

  # 调用 maybeBuildSomething,使用"fire-trap"及底部X的坐标。

    maybeBuildSomething("fire-trap", 40, 20)

  # 调用maybeBuildSomething,在左侧X处使用"fence"!

https://blog.csdn.net/qq_41264674/article/details/79914912 13/20
24/11/22, 16:20 计算机科学入门二(python)_@Within的博客-CSDN博客_扣达世界攻略
codecombat
    maybeBuildSomething("fence", 26, 34)

  # 调用maybeBuildSomething,在顶部的X处使用"fire-trap"!

    maybeBuildSomething("fire-trap", 40, 50)

  # 调用maybeBuildSomething,在右侧X处使用"fence"!

    maybeBuildSomething("fence", 54, 34)

39. 贪婪的陷阱
# 巡逻并只在看到金币时设置陷阱。

# 编写这个函数

def maybeBuildTrap(x, y):

  # 移动到给定的xy位置

    hero.moveXY(x, y)

  # 搜寻一枚硬币,如果找到就建造一个"fire-trap"

    coin = hero.findNearestItem()

    if coin:

        hero.buildXY("fire-trap", x, y)

while True:

  # 为左上方通道调用maybeBuildTrap

    maybeBuildTrap(12, 56)

  # 下面是右上角的通道。

    maybeBuildTrap(68, 56)

  # 下面是右下的通道。

    maybeBuildTrap(68, 12)

  # 下面是左下角的通道。

    maybeBuildTrap(12, 12)

40. 边地好伙伴
# 你现在拥有一个宠物!

def speak(event):

  # 你的宠物需要用pet.say()进行回应

    pet.say("Meow!")

# 这将告诉你的宠物,在听到声音时运行speak()函数

pet.on("hear", speak)

# 和你的宠物交谈!

hero.say("Hello Kitty")

40a. 好伙伴的名字A
# 农民想知道宠物的名字。

# 使用这个函数作为"hear"事件的处理函数。

def sayName(event):

  # 宠物会在函数调用时按顺序说这些。

    pet.say("我名叫狂兽。")

    pet.say("不过我的朋友们叫我毛球。")

    

# 使用pet.on("eventName", functionName)来添加事件监听函数给宠物

# 在这里使用"hear" sayName及pet.on()

pet.on("hear", sayName)

https://blog.csdn.net/qq_41264674/article/details/79914912 14/20
24/11/22, 16:20 codecombat计算机科学入门二(python)_@Within的博客-CSDN博客_扣达世界攻略

# 你这次不需要说任何东西!

# 农民会进行交谈。
40b. 好伙伴的名字 B
# 宠物需要向英雄和农民问好。

# 使用这个函数作为"hear"事件的处理函数:

def sayHello(event):

  # 宠物在说你好:

    pet.say("Hi-meaw")

# 使用宠物的.on("eventType", functionName)方法.

# 这一关里,宠物需要在听到声音后运行sayHello

pet.on("hear", sayHello)

# 那么,问候宠物,等待回应。

hero.say("Hello, kitty!")

41. 好伙伴的名字
# 我们需要知道新宠物的名字。

# 把这个函数用作宠物 "hear" 事件的处理函数。

def onHear(event):

  # 不要更改这个函数

    pet.say("喵呜~ 汪 喵呜~")

    pet.say("汪 汪")

    pet.say("喵呜~")

    pet.say("喵呜~")

    pet.say("喵呜~ 汪 喵呜~ 喵呜~")

# 使用 “the pet.on(eventType,eventHandler) 方法”

# 指派onHear函数来处理"hear"事件。

#这必须在 "pet.on" 的后面。

hero.say("伙计,你叫什么名字?")

hero.say("能重复一次吗?")

42.博士猫咪
# 教你的宠物回答问题!

# 很幸运,所有的答案都是"2"

def sayTwo(event):

  # 使用pet.say()来回答"2"

    

    pass

# 使用pet:on(),通过sayTwo来处理"hear"事件

# 现在休息并观看表演吧!

https://blog.csdn.net/qq_41264674/article/details/79914912 15/20
24/11/22, 16:20 codecombat计算机科学入门二(python)_@Within的博客-CSDN博客_扣达世界攻略
hero.say(" 一加一等于…?")

等于多少?")

hero.say("x^3 - 6x^2 + 12x - 8 = 0. x


火星有多少卫星?")
hero.say("

43. 宠物小测试
# 编写一个事件处理函数,名为onHear

# 完成onHear函数

def onHear(e):

  # 宠物需要在onHear中说点什么。

    pet.say("Myau")

pet.on("hear", onHear)

hero.say("能听懂我的话吗?")

hero.say("你是美洲狮吗?")

hero.say("你多大啦?")

# 再问两个问题。

hero.say("你会数学吗?")

hero.say("你想不想到大学深造?")

44. 去拿取
# 你被困在了陷阱中!

# 派遣宠物拿取治疗药水!

def goFetch():

  # 你可以在处理函数中使用循环。

    while True:

        potion = hero.findNearestItem()

        if potion:

      # 用 “pet.fetch()” 去让你的宠物捡药水:

            pet.fetch(potion)

# 当宠物被召唤出来时,会触发 "spawn" 事件。

# 这让你的宠物在关卡开始时运行 goFetch()函数。

pet.on("spawn", goFetch)

45. 看门狗

def onSpawn(event):

    while True:

    # 宠物一样可以发现敌人。

        enemy = pet.findNearestEnemy()

    # 如果有敌人:

        if enemy:

      # 然后让宠物说点什么:

            pet.say("Woof!")

    

pet.on("spawn", onSpawn);

漫漫长路
46.
移动到右边

# 补全这个函数:

https://blog.csdn.net/qq_41264674/article/details/79914912 16/20
24/11/22, 16:20 计算机科学入门二(python)_@Within的博客-CSDN博客_扣达世界攻略
codecombat
def onSpawn(event):

  # 在 while-true 循环里:

    while True:

    # 使用hero.findNearestItem()

        item = hero.findNearestItem()

    # 如果有物品:

        if item:

      # 使用pet.fetch(item)来拿取物品。

            pet.fetch(item)

# 使用pet.on()来将onSpawn指派给"spawn"事件

pet.on("spawn", onSpawn)

hero.moveXY(78, 35)

47. 森林慢跑

def onSpawn(event):

    while True:

    # 首先,移动到左侧X标记处:

        pet.moveXY(9, 24)

    # 接着,移动到上面的X标记。

        pet.moveXY(30, 43)

    # 将宠物移动至右侧的X标记处:

        pet.moveXY(51, 24)

    # 将你的宠物移动到下面的X标记处:

        pet.moveXY(30, 5)

# 使用pet.on(),通过onSpawn来处理"spawn"事件

pet.on("spawn", onSpawn)

# 激励你的宠物!

# 不要移除下方的命令。

while True:

    hero.say("狗狗真棒!")

    hero.say("你能做到的!")

    hero.say("跑跑跑!")

    hero.say("快好了!")

    hero.say("再来一圈!")

48. 森林加农炮之舞
# 你的宠物应该在X标记上来回跑动

# 英雄需要时刻保持兴奋!

# 为宠物编写事件函数onSpawn

# 这个函数要让狼来回跑动:

# 首先,跑到右侧的标记上,然后左侧的标记:

def onSpawn(event):

    while True:

        pet.moveXY(12, 8)

        pet.moveXY(48, 8)

pet.on("spawn", onSpawn)

# 鼓舞你的宠物。不要移除这个:

while True:

    hero.say("跑!!!")

    hero.say("速度!")

https://blog.csdn.net/qq_41264674/article/details/79914912 17/20
24/11/22, 16:20 codecombat 计算机科学入门二(python)_@Within的博客-CSDN博客_扣达世界攻略
49. Power Peak

def petLogic():
# Add code to use your pet!
# Move them to the power discs at the top of the map for powerups.
pet.moveXY(66, 74)

pet.on('spawn', petLogic)
while True:
# Improve your hero's default code!
# Move to the nearby power discs to spawn units to help or attack!

enemy = hero.findNearestEnemy()
if enemy:
if hero.isReady("cleave"):
hero.cleave(enemy)
else:
hero.attack(enemy)
else:
hero.moveXY(38, 31)

@Within 关注 5 10 0 专栏目录

【初识Python】python入门(三) 01-20
海龟绘图库
相关资料来自百度百科,以及MOOC教程。
turtle(海龟)是Python重要的标准…
turtle

计算机科学导论第2和3章习题答案 .doc 02-15


计算机科学导论第12和3章习题答案 1. 在计算机用于信息处理方面有一句著名的说法GIGO请问GIG…
欣旺达第三季营收149亿:净利3.16亿 仍在推进欧… 最新发布 leijianping_ce 的博客
67
雷递网 雷建平 10月27日欣旺达电子股份有限公司(证券代码:300207,证券简称:欣旺达)日前…
四大游戏编程网站,边玩游戏,边学Python,拒绝枯燥快乐编程 宋宋的专栏
Python
45
学习编程虽然对有些人来说是件乐事,但是对大多数人来说仍然是一件比较枯燥困难的事情。当然,…

极客战记计算机科学2答案_科学专家和极客分享他们的开源项目 cumj63710的博客
808
极客战记计算机科学2答案 开放科学周将于6月9日开始! 从周一开始,来自开源社区的人们将与我…
https://blog.csdn.net/qq_41264674/article/details/79914912 18/20
24/11/22, 16:20 codecombat 计算机科学入门二(python)_@Within的博客-CSDN博客_扣达世界攻略
06 计算机一级考试六(答案).pdf 10-10
06 计算机一级考试六(答案).pdf
codecombat 计算机科学三,Codecombat 游戏攻略——Jav… weixin_42210638的博客
1039
第21关:有用的对手// 这片满是硬币的地方暗藏了致命的毒药。// 食人魔正在进攻,而差役尝试偷…
codecombat 计算机科学入门三(Python) Within 的博客
8715
1. 友人和敌人while True:
friend = hero.findNearestFriend()
if friend:
hero.say("To battle, " + friend.id…
CodeCombat:CodeCombat 级别的解决方案 07-03
代码战斗
CodeCombat 级别的解决方案
扣哒世界平台升级 - 课程内容全面支持C++ 扣哒世界CodeCombat的博客
1010
经常有老师和同学来询问,扣哒世界是否支持C++学习。好消息来了,现在扣哒世界课程全面支持…
codecombat 计算机科学三,Codecombat 游戏攻略——Java… weixin_42501331的博客
488
第1关:尘埃// 使用循环直到你击杀10个Munchkinsvar attacks = 0;while (attacks < 10) {// 攻击最…
极客战记计算机科学2村庄守卫,「网易官方」极客战记(co… weixin_42467445的博客
85
( 点击图片进入关卡)编写你自己的函数来阻止食人魔入侵。简介 食人魔从另一条路突破进入了村…
codecombat 计算机科学入门四(python) Within 的博客
4912
1. 尘埃# &lt;%= ten_munchkins %&gt;​
attacks = 0
while attacks &lt; 10:
# &lt;%= attackNearest %&g…
codecombat 计算机科学入门五(python) Within 的博客
5392
1. 维他力量# 这关会教你怎么定义你自己的函数。​
# 放在函数内的代码并不会立刻执行, 而是先保…
极客战记计算机科学2村庄守卫,极客战记任务攻略 任务攻… weixin_35128544 的博客
159
极客战记任务怎么做,这个游戏要怎么玩,如何快速上手呢?下面是友情MT为大家带来的极客战…
极客战记计算机科学2村庄守卫,「网易官方」极客战记(c… weixin_27059669的博客
248
( 点击图片进入关卡)从食人魔的劫掠中保护村庄简介 在村庄的入口处巡逻,使用 if 语句检查是否有…
2021-2022 年度“扣哒杯”AI世青赛初赛落下帷幕 扣哒世界CodeCombat的博客
620
2021 年12月1日,由扣哒人工智能学会、CodeCombat和网易伏羲人工智能实验室共同主办的2021…
计算机游戏36,计算器游戏全关卡通关攻略 weixin_39569894 的博客
157
想必很多小伙伴小时候都玩过计算器,随便按数字加减乘除,但是计算器游戏则不同,需要通过寻…
©️2022 CSDN
皮肤主题:技术黑板
设计师:CSDN官方博客
返回首页

@Within
码龄5年 暂无认证

416 2万+ 3万+ 105万+


原创 周排名 总排名 访问 等级
1万+ 592 669 289 1821
积分 粉丝 获赞 评论 收藏

私信 关注

搜博主文章

分类专栏
https://blog.csdn.net/qq_41264674/article/details/79914912 19/20
24/11/22, 16:20 codecombat 计算机科学入门二(python)_@Within的博客-CSDN博客_扣达世界攻略
English 7篇
basic 7篇

oop 8篇

JavaSE 18篇

oracle 3篇

jdbc 3篇

最新评论
Execution repackage of goal org.springfr…
我真的是个菜鸟,求大佬带!: 确实是这个
原因。为了方便,我将一个模块打包出来运...

https://blog.csdn.net/qq_41264674/article/details/79914912 20/20

You might also like