[Python] Codecombat攻略 远边的森林 Forest (1-40关)

首页:https://cn.codecombat.com/play
语言:Python

 

第二界面:远边的森林Forest(40关)
时间:2-6小时
内容:if/else、关系操作符、对象属性、处理输入
网页:https://cn.codecombat.com/play/forest

 

闯关:
第1关:森林保卫战
子网页:https://cn.codecombat.com/play/level/defense-of-plainswood?

# 建立两个围栏保护村民
# 把鼠标放在地图上得到X,Y坐标

self.buildXY("fence", 40, 52);
self.buildXY("fence", 40, 20);

 

第2关:羊肠小道
子网页:https://cn.codecombat.com/play/level/winding-trail?

# 到小路的尽头去,并在那儿修一个栅栏。
# 利用你的 moveXY(x, y)坐标移动功能。

# It's the first point of the path.
hero.moveXY(36, 59)
# Move at the next points of the path.
hero.moveXY(37, 12)
# Build a fence to stop the ogre.
hero.buildXY("fence", 72, 25)

 

第3关:丛林里的间隔
子网页:https://cn.codecombat.com/play/level/woodland-cubbies?

# 在丛林里头探索,但务必提高警觉!
# 这些丛林角落隔间可能会藏有ogres!

hero.moveXY(19, 33)
enemy = hero.findNearestEnemy()
# 条件判断式将会检查该变数是否参考到一个ogre
if enemy:
    hero.attack(enemy)
    hero.attack(enemy)

hero.moveXY(49, 51)
enemy = hero.findNearestEnemy()
if enemy:
    # 在这里撰写攻击敌人指令
    hero.attack(enemy)
    hero.attack(enemy)
    # pass没有特别的意思,只是用来协助结束条件判断式,写不写都可以
    pass

hero.moveXY(58, 14)
enemy = hero.findNearestEnemy()
# 使用条件判断式来确认敌人是否存在
if enemy:
    # 如果敌人存在就攻击他
    hero.attack(enemy)
    hero.attack(enemy)

 

第4关:If-stravaganza
子网页:https://cn.codecombat.com/play/level/if-stravaganza?

# 消灭从他们自己的营地里出来的食人魔

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

 

第5关:背靠背
子网页:https://cn.codecombat.com/play/level/back-to-back?

# 呆在中间防守!

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

 

第6关:森林劈裂者
子网页:https://cn.codecombat.com/play/level/woodland-cleaver?

# 尽可能经常使用你的新技能“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

  

第7关:边远地区的对峙
子网页:https://cn.codecombat.com/play/level/backwoods-standoff?

# 这些曼切堪食人魔害怕英雄!
# 说些什么,他们会吓得往后退。
# 但是,有足够的曼切堪食人魔,他们将联合起来伏击你!小心!
# 每当`cleave`(横劈)冷却时间完成,立即用它清除敌人。

while True:
    # 使用 ‘isReady’ 中的一个 “if-statement” 的语句来检查 “cleave”
    if hero.isReady("cleave"):
        # 劈斩!
        hero.cleave()
    # 或者,如果 cleave 还没准备好的话:
    else:
        # 说一点什么来吓走曼切堪食人魔
        hero.say("Bool!")
    pass

 

第8关:测距仪
子网页:https://cn.codecombat.com/play/level/range-finder?

# 瘦人正在森林里头巡逻!
# 使用distanceTo方法来计算敌人与英雄间的距离
# 说出每个敌人和英雄间的距离以告知大砲要轰炸哪里

enemy1 = "Gort"
distance1 = hero.distanceTo(enemy1)
hero.say(distance1)

enemy2 = "Smasher"
# 将distance2变数作为参数,传入say()方法
distance2 = hero.distanceTo(enemy2)
# 测量并说出剩余敌人与英雄间的距离
hero.say(distance2)

# 不要向你的友军进行射击!
enemy3 = "Charles"

enemy4 = "Gorgnub"
distance4 = hero.distanceTo(enemy4)
hero.say(distance4)

 

第9关:保护农民
子网页:https://cn.codecombat.com/play/level/peasant-protection?

while True:
    enemy = hero.findNearestEnemy()
    distance = hero.distanceTo(enemy)
    if distance < 10:
        # 如果他们与农民太近,就攻击他们
        hero.attack(enemy)
        pass
    # 否则的话,呆在农民旁边!
    else:
        hero.moveXY(40, 37)

 

第10关:疯狂的食人魔
子网页:https://cn.codecombat.com/play/level/maniac-munchkins?

# 地上另一个让英雄打开的宝箱!
# 攻击宝箱以打开它
# 有些食人魔可不会呆呆地站着挨打!
# 当食人魔离你太近时,你得学着保护你自己

while True:
    enemy =
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值