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

从第二章开始,我们要学习很多新的内容了,大家初始如果觉得感觉比较困难,那这个时候就可以在把提示打开,这时会多了些新的方法的提示,然后在熟悉之后,记得在关掉代码提示功能!!!

———————————————————哥哥哥哥哥哥哥—————————————————————

羊肠小道

#清楚坐标的概念,学习在二维空间中的内容。
#坐标是由X,Y组成,我们要明确位置的概念。

# 到小路的尽头去,并在那儿修一个栅栏。
# 利用你的 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, 13)
# Build a fence to stop the ogre.
hero.moveXY(72, 21)
hero.buildXY("fence", 72, 25)

一步走错

# 英雄完全困惑了!
# 纠正他们的路径,别让他们走到地雷上

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

林地小屋

从本关之后,所有的关卡都增加了代码调试及提交的功能,作为一个开发人员,这是必须要知道的!!

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


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:
    hero.moveXY(56,44)
    hero.moveXY(40,56)
    # 用 moveXY 在森林中移动,确保存活。
    hero.moveXY(24,44)
    hero.moveXY(40,12)
    hero.moveXY(56,24)

九个宝石(九颗宝石)

这关需要动动脑筋,当然之前在编写其他章的时候老师暴漏了自己的年龄,那这里就不妨在暴漏下。记得小时候看过一个邋遢大王(小邋遢)的一个动画片,有一集就是关于此关的内容的哦!~敢兴趣的童鞋可以去找找看看,如果还可以找到的话。

# Collect all the gems in 4 moveXY's or less!
# Programmers need to think creatively!
hero.moveXY(57, 60)
hero.moveXY(22, 23)
hero.moveXY(56, 23)
hero.moveXY(32, 48)

if的盛宴

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

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

巡逻兵克星

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

边地伏击战

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)
    pass # pass是一个占位符

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)

在游戏的地图里XY坐标是表示位置的两个数字,x坐标表示左右的横坐标,y坐标表示为上线的纵坐标。
注意:向右运动时,x会增大。向左运动时,x会减小。
向上运动时,y数值会增大,向下运动时,y数值会减小。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值