Codecombat复赛闯关攻略

本文为Codecombat复赛的Python编程闯关攻略,详细介绍了从第一关到第四十五关的通关步骤和关键技巧,涵盖关卡设计的变化、新增功能以及实战策略。

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

一、前言

前面一直在努力学习,学习了codecombat新一期的计算机科学课程,涉及到了许多其他的东西。以前的移动函数有5个,但是复赛就1个;以前的攻击函数只有1个,但是复赛有2个。
关卡也比原来多了,学习的东西自然不同。
在这里插入图片描述
下面是具体的闯关过程及源代码。

二、具体闯关流程(1~23)

第一关

在这里插入图片描述

# 在标记上建造两段围栏来保护村民。
# 把鼠标悬停在地图上,以得到X,Y坐标。

hero.buildXY("fence", 40, 52)
hero.buildXY("fence", 40, 20)

第二关

在这里插入图片描述

# 到小路的尽头去,并在那儿修一个栅栏。
# 利用你的 moveXY(x, y)坐标移动功能。
hero.moveXY(36, 60)
hero.moveXY(37, 13)
hero.buildXY("fence", 72, 25)

第三关

在这里插入图片描述

# 英雄完全糊涂了!
# 纠正路径,别让其踩到地雷。

hero.moveXY(11,37)
hero.moveXY(35, 25)
hero.moveXY(40, 56)
hero.moveXY(77, 58)

第四关

在这里插入图片描述

# 区域内有一名猎头者!
# 在森林附近跑动,以躲避他的视线

while True:

    # 用 moveXY 在森林中保持移动,以确保存活。
    # 不要忘记缩进。
    hero.moveXY(56, 44)
    hero.moveXY(40, 56)
    hero.moveXY(24, 44)
    hero.moveXY(24, 24)
    hero.moveXY(40, 12)
    hero.moveXY(56, 24)

第五关

在这里插入图片描述

# 通过林地,务必留意危险!
# 这些森林小屋中可能有食人魔!

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:
    # 在这里攻击敌人:
    hero.attack(enemy)
    hero.attack(enemy)
    # `pass`语句是占位符,不做任何事情,它只帮助结束if语句。
    pass

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

    

第六关

在这里插入图片描述

# 记得敌人可能还不存在。
while True:
    enemy = hero.findNearestEnemy()
    if enemy:
        # 如果有敌人,攻击它!
        hero.attack(enemy)
        hero.attack(enemy)
        pass

第七关

在这里插入图片描述

# 记得敌人可能还不存在。
while True:
    enemy = hero.findNearestEnemy()
    # 如果有敌人,攻击它!
    if enemy:
        hero.attack(enemy)
        hero.attack(enemy)

    

第八关

在这里插入图片描述

# 在食人魔的营地中打败它们!

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

第九关

在这里插入图片描述

# 在村口巡逻。
# 如果发现敌人,就攻击它。
while True:
    hero.moveXY(35, 34)
    leftEnemy = hero.findNearestEnemy()
    if leftEnemy:
        hero.attack(leftEnemy)
        hero.attack(leftEnemy)
    # 现在移动到右侧入口。
    hero.moveXY(60, 31)
    # 再次使用findNearestEnemy,来找到右侧的敌人。
    enemy = hero.findNearestEnemy()
    if enemy:
        hero.attack(enemy)
        hero.attack(enemy)
    # 如果有右侧的敌人,使用"if"来攻击。
    hero.moveXY(35, 34)

第十关

在这里插入图片描述

# 在村口巡逻。
# 当你见到食人魔时,建造一个火焰陷阱"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()
    # 检查`left`是否存在。
    top = hero.findNearestEnemy()
    if top:
        hero.buildXY("fire-trap", 25, 35)
    top = hero.findNearestEnemy()
    if top:
        hero.buildXY("fire-trap", 43,20 )

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

第十一关

在这里插入图片描述

# 待在中间防守!

while True:
    enemy = hero.findNearestEnemy()
    if enemy:
        # 亦或主动出击…
        hero.attack(enemy)
        hero.attack(enemy
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值