codecombat极客战记森林21-40通关代码_codecombat 森林通关-程序员宅基地

技术标签: 极客战记  codecombat  

codecombat极客战记森林21-40通关代码

所有代码均使用python编写

21.强攻ATETH塔

在这里插入图片描述

hero.moveXY(55, 14)
hero.moveXY(92, 18)

# 在红色的 X 位置建造一个火焰陷阱
hero.buildXY("fire-trap", 92, 18)
# 撤退到木的 X 位置,来避免伤害。
hero.moveXY(55, 14)
# 等雇佣兵发现闪亮的火焰陷阱
# 进入营地,放置火焰陷阱在红色的 X 位置
hero.moveXY(89, 52)
hero.buildXY("fire-trap", 89, 52)
hero.moveXY(60, 62)
hero.buildXY("fire-trap", 60, 62)
# 冲你的部队喊撤退(提示:使用 say 命令, "Retreat!")
hero.say("Retreat!")
# 逃回到左边的木的 X 位置
hero.moveXY(-17, 38)

22.森林劈斩者

在这里插入图片描述

23.盾击

在这里插入图片描述

# 用shield盾牌和cleave顺势斩在两波进攻中活下来
# 如果cleave顺势斩没有准备好,就用你的shield盾牌技能。
# 你将会需要至少142健康值来保证活下来
while True:
    enemy = hero.findNearestEnemy()
    ready = hero.isReady("cleave")
    if ready:
        hero.cleave(enemy)
    else:
        hero.shield()
        #hero.attack(enemy)

24.BURLS教你学布尔

在这里插入图片描述

# 布尔值要么是真 True 要么是假 False
# == 表示 ”等于吗“?
# 所以, A == B 是在问:”A 是等于 B吗?“
# 答案会是一个布尔值!
# 如果太难了,点一下”Hints“ 提示按钮!

# 问题: 2 == 3 
# 回答正确的答案:
hero.say(False)

# 问题: 3 == 3
# 回答 True 真 或者 False 假 2:
hero.say(True)

# 问题: "Three" == 3
# 回答 True 真 或者 False 假 3:
hero.say(False)

# 问题: "Three" == "Three"
# 回答 True 真 或者 False 假 4:
hero.say(True)

# 问题: 1 + 2 == 3
# 回答 True 真 或者 False 假 5:
hero.say(True)

25.奥法盟友在这里插入图片描述

# 拿下那些兽人 
while True:
    enemy = hero.findNearestEnemy()
    if enemy:
        if hero.isReady("cleave"):
            hero.cleave(enemy)
        else:
            
            hero.attack(enemy)

26.死亡之触

在这里插入图片描述

# 在短距离中释放你的『吸取生命』技能。
# 使用你的法丈在远距离攻击。

while True:
    enemy = hero.findNearestEnemy()
    if enemy:
        distance = hero.distanceTo(enemy)
        if distance < 15:
            # 在敌人里释放『吸取生命』技能。
            hero.cast("drain-life", enemy)
        else:
            # 使用你的盟友攻击敌人。
            hero.attack(enemy)

27.修骨者

在这里插入图片描述

# 拯救盟友的士兵来突围
while True:
    if hero.canCast("regen"):
        bernardDistance = hero.distanceTo("Bernard")
        if bernardDistance < 10:
            # Bernard需要治疗!
            hero.cast("regen", "Bernard")
        
        # 使用『if』和『distanceTo』来治疗 "Chandra"
        # 如果她小于10米的距离。
        changraDistance = hero.distanceTo("Chandra")
        if changraDistance < 10:
            # Bernard需要治疗!
            hero.cast("regen", "Chandra")
        
    else:
        # 如果你没有执行 regen,使用 if 和 distanceTo 
        # 来攻击那些小于一定距离的敌人 hero.attackRange.
        enemy = hero.findNearestEnemy()
        
        if enemy:
            hero.attack(enemy)
        

28.矮人蜂拥而至

在这里插入图片描述

while True:
    # 检查与最近敌人的距离
    enemy = hero.findNearestEnemy()
    # 如果它接近到10m以内,对它使用cleave!
    distance = hero.distanceTo(enemy)
    if distance < 10:
        hero.cleave(enemy)
    # 否则,攻击某名字的宝箱(“Chest”)
    else:
        hero.attack("Chest")

29.边地僵局

在这里插入图片描述

# 矮人正在攻击!
# 攻击会有规律的一波波袭来。
# 可以的话,使用劈斩来清理大量敌人。

while True:
    enemy = hero.findNearestEnemy()
    # 使用带有‘isReady’的if语句来检查 “cleave”
    if hero.isReady("cleave"):
        hero.cleave(enemy)
        # 劈斩!
    # 否则,如果 cleave 还没准备好的话:
    else:
        
        # 攻击最近的食人魔!
        hero.attack(enemy)

30.测距仪

在这里插入图片描述

# 食人魔正在森林中巡视!
# 使用distanceTo方法找到敌人在哪。
# 说出与每个敌人的距离,告诉大炮向哪开火!

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

enemy2 = "Smasher"
distance2 = hero.distanceTo(enemy2)
# 说出distance2变量!
hero.say(distance2)
# 找到并说出与剩余敌人之间的距离:
# 不要攻击友方!
friend3 = "Charles"

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

31.eise之战

在这里插入图片描述

# 劈斩正在10秒冷却中。
# 使用 else 语句在恢复时防守。

while True:
    enemy = hero.findNearestEnemy()
    if hero.isReady("cleave"):
        hero.cleave()
    # 写个 else: 当 “cleave” 没有准备好时去做点什么。
    else:
        
        # 确保攻击了敌人:
        hero.attack(enemy)

32.边地僵局A

在这里插入图片描述

# 矮人正在攻击!
# 攻击会有规律的一波波袭来。
# 可以的话,使用劈斩来清理大量敌人。

while True:
    enemy = hero.findNearestEnemy()
    # 使用带有‘isReady’的if语句来检查 “cleave”
    ready = hero.isReady("cleave")
    if ready:
        # 劈斩!
        hero.cleave(enemy)
        #hero.say("大招来了,一刀秒你们")
    # 否则,如果 cleave 还没准备好的话:
    else:
        # 攻击最近的食人魔。
        hero.attack(enemy)

33.边地僵局B

在这里插入图片描述

# 矮人正在攻击!
# 攻击会有规律的一波波袭来。
# 可以的话,使用劈斩来清理大量敌人。

while True:
    enemy = hero.findNearestEnemy()
    # 使用带有‘isReady’的if语句来检查 “cleave”
    if enemy:
        if hero.isReady("cleave"):
            hero.cleave(enemy)
        # 劈斩!
        
    # 否则,如果 cleave 还没准备好的话:
        else:
            hero.attack(enemy)
        # 攻击最近的食人魔!

34.收割小食人魔

在这里插入图片描述

# 铲除所有遗留的小食人魔
# 确保你有足够的护甲。
while True:
    enemy = hero.findNearestEnemy()
    ready = hero.isReady("cleave")
    if ready:
        hero.cleave(enemy)
    else:
        hero.attack(enemy)

35.敏捷的匕首

在这里插入图片描述

# 长距离用你的弓,短距离用匕首
while True:
    enemy = hero.findNearestEnemy()
    if enemy:
        distance = hero.distanceTo(enemy)
        if distance < hero.throwRange:
            # 向敌人扔你的匕首
            hero.throw(enemy)
            
        # else:
            # 用你的弓攻击敌人
            # hero.attack(enemy)

36.弹片

在这里插入图片描述

# 使用炸药干掉食人魔
# 然后用你的弓干掉他们

while True:
    enemy = hero.findNearestEnemy()
    if enemy:
        if hero.isReady("throw"):
            distance = hero.distanceTo(enemy)
            # 如果食人魔距离多于15米的时候,扔炸药炸他
            # 使用 if 来比较距离和15
            if distance > 15:
                hero.throw(enemy)
            # 使用 else 来攻击它如果你不能够炸它
           
        else:
            hero.attack(enemy)

37.LONG-RANGE DIVISION在这里插入图片描述

# Destroy the mines!
# Use `say` to call out the range to the mines.
# Use division to calculate the range.
enemy = hero.findNearestEnemy()
distanceToEnemy = hero.distanceTo(enemy)
# Say first Range: distanceToEnemy divided by 3
hero.say(distanceToEnemy/3)
hero.say("Fire!")
# Say second range: distanceToEnemy divided by 1.5
hero.say(distanceToEnemy/1.5)
hero.say("Fire!")

# Say these things for motivation. Really. Trust us.
hero.say("Woo hoo!")
hero.say("Here we go!")
hero.say("Charge!!")

# Now, use a while-true loop to attack the enemies.
while True:
    enemy = hero.findNearestEnemy()
    hero.attack(enemy)

38.帖身护卫

在这里插入图片描述

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

39.发狂的小矮人v

# 又一个宝箱等待英雄打开!
# 攻击宝箱来打开它。
# 有些食人魔矮人可不会呆呆地站着挨打!
# 当食人魔离你太近时,你得学着保护你自己
while True:
    enemy = hero.findNearestEnemy()
    distance = hero.distanceTo(enemy)
    if hero.isReady("cleave"):
        # 如果劈斩就绪,优先使用劈斩:
        hero.cleave(enemy)
    elif distance < 5:
        # 攻击靠近并离你最近的食人魔矮人
        hero.attack(enemy)
    else:
        # 否则,尝试打开宝箱:
        # Use the name of the chest to attack: "Chest".
        hero.attack("Chest")

40.跃火林中

在这里插入图片描述

# 在这关,别碰恶魔石!往其他方向移动避开它们!
while True:
    evilstone = hero.findNearestItem()
    if evilstone:
        pos = evilstone.pos
        if pos.x == 34:
            # 如果恶魔石在左边,走到右边。
            hero.moveXY(46,22)
            pass
        else:
            # 如果恶魔石在右边,走到左边。
            hero.moveXY(34,22)
            pass
    else:
        # 如果没有恶魔石,那就去到中间。
        hero.moveXY(40, 22)
        pass
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lzwq1288/article/details/89054058

智能推荐

c语言数组的排序递归,C语言:用递归的方式对数组排序-程序员宅基地

文章浏览阅读1.1k次。原题如下:编写程序,要求用户录入一串整数(把这串整数存储在数组中),然后通过调用selection_sort函数来排列这些整数。在给定n个元素的数组后,election_sort函数必须做下列工作:搜索数组找出最大的元素,然后把它移到数组的最后面;递归的调用函数本身对前面的n-1个数组元素进行排序。下面是我自己写的程序:(运行结果不对,求大神指导!!!)#include #define N 8in..._c语音递归n从高到低排序

ElasticSearch亿级数据毫秒查询实现_亿级数据模糊查询用什么数据库-程序员宅基地

文章浏览阅读6.1k次,点赞5次,收藏12次。面临问题:很多时候数据量大了,特别是有几亿条数据的时候,可能你会发现,跑个搜索怎么一下 5~10s。第一次搜索的时候,是 5~10s,后面反而就快了,可能就几百毫秒。说实话,ES 性能优化是不可能随手调一个参数,就可以万能的应对所有的性能慢的场景。也许有的场景是你换个参数,或者调整一下语法,就可以搞定,但是绝对不是所有场景都可以这样。性能优化:Filesystem Cache你往 ES..._亿级数据模糊查询用什么数据库

Python量化交易学习笔记(35)——backtrader多股回测避坑2_indexerror: array assignment index out of range-程序员宅基地

文章浏览阅读6.8k次。本文继续记录多股回测时遇到的异常情况。坑描述backtrader在读取日线数据时,会自动给date数据添加“时:分:秒.毫秒(23:59:59.999990)”信息。而通常用户在指定回测周期的开始和结束日期时,只会精确到日,时分秒信息会被backtrader默认以0补全。由于上述两个事实的存在,假如用户指定回测周期的结束日期有日线数据(由于非交易日、停盘等原因,可能没有日线数据),那么在backtrader中,回测周期的结束时间就会被设定为该日的00:00:00,而backtrader读_indexerror: array assignment index out of range

检索之 乘积量化(Product Quantization)_乘积量化检索-程序员宅基地

文章浏览阅读1.9k次。本文转载自:https://www.cnblogs.com/mafuqiang/p/7161592.html乘积量化1。简介  乘积量化(PQ)算法是和VLAD算法是由法国INRIA实验室一同提出来的,为的是加快图像的检索速度,所以它是一种检索算法,在矢量量化(Vector Quantization,VQ)的基础上发展而来,虽然PQ不算是新算法,但是这种思想还是挺有用处的,本文没有添加公式。  它..._乘积量化检索

样本熵(Python实现)_样本熵电池代码-程序员宅基地

文章浏览阅读6.2k次,点赞8次,收藏39次。1. 基本概念1.1 熵熵原本是一个热力学概念,是用来描述热力学系统混乱(无序)程度的度量。在信息论建立之后,关于上的概念和理论得到了发展。作为衡量时间序列中新信息发生率的非线性动力学参数,熵在众多的科学领域得到了应用。八十年代最常用的熵的算法是K-S熵及由它发展来的E-R熵,但这两种熵的计算即使对于维数很低的混沌系统也需要上万点的数据,而且它们对于噪声很敏感,时间序列叠加了随机噪声后这两种熵的计算可能不收敛。1.2 近似熵近似熵(APEN, Aproximate Entropy),是由Pincus_样本熵电池代码

BeanFactory和FactoryBean以及ApplicationContext的区别_beanfactory与factorybean和applicationcontext的区别-程序员宅基地

文章浏览阅读932次。BeanFactoryBeanFactory是IOC最基本的容器,负责生产和管理bean,它在为其他具体的IOC容器提供了最基本的规范,例如XmlBeanFactory、ApplicationContext等具体的挺起都实现了BeanFactory,再在其基础上附加了其他功能BeanFactory源码package org.springframework.beans.factory; ..._beanfactory与factorybean和applicationcontext的区别

随便推点

「Arm Arch」 虚拟化微架构_hypervisor arm-程序员宅基地

文章浏览阅读280次。全文3000字,预计阅读时长:8分钟适用于从事ARM软硬件设计、开发、调试的工程师、教师以及学生对于大部分开发者来讲,ARM架构知识一直存放于盲盒之中,知之甚少;而ARM架构知识是ARM结构化知识中非常关键的一部分,它的缺失,会导致我们对于问题的系统化思考难以进行。所以增设了《ARM架构知多少-A系列》专栏来和大家一起学习ARM架构,完善知识结构,拓展系统思考边界。_hypervisor arm

【Xilinx】基于DMA的adc读取_adc数据长度为什么是1920-程序员宅基地

文章浏览阅读1.1k次。硬件环境:ZYNQ7000软件环境:petalinux2018.2 xilinx_vivado_sdk2018.2学习例程:1、DMA初始化1)定义变量//定义ioctrl的命令#define AXI_ADC_IOCTL_BASE 'W'#define AXI_ADC_SET_SAMPLE_NUM _IO(AXI_ADC_IOCTL_BASE, 0)#define AXI_ADC_SET_DMA_LEN_..._adc数据长度为什么是1920

审计日志在分布式系统中的应用_审计日志定义-程序员宅基地

文章浏览阅读5.4k次,点赞3次,收藏9次。前言分布式系统的执行环境往往是异常复杂的,很多情况涉及到多节点间的消息通信。相比较于单节点系统而言,分布式系统在问题追踪,排查方面显然也复杂很多。那么这个时候,在分布式系统中,增加哪些类型的日志数据,来帮助我们发现和定位问题呢?答案就是我们今天将要阐述的审计日志(Audit log)。审计日志的概念很多人可能在想这样一个问题:同样是日志,审计日志和普通的日志,区别在于哪里呢?审计日志,..._审计日志定义

conda虚拟环境总结与解读_conda 环境-程序员宅基地

文章浏览阅读7k次,点赞19次,收藏54次。csdn上有很多关于conda的文章,但是一直没有一个宏观一些的文章,我将从宏观角度出发,对文章进行一个整合,解读,将新同学从conda环境入门到配置,应用全流程进行解读。当然,这篇文章因为是宏观一些,可能很多同学不能一次性看懂,没关系,这个可以反复看,在不同阶段都可以提供帮助。......_conda 环境

HashMap与TreeMap的排序以及四种遍历方式_treehash的遍历方法-程序员宅基地

文章浏览阅读593次。一、Map概述1、Map是将键映射到值( key-value )的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。2、Map与Collection的区别(1)Map 是以键值对的方式存储元素,键唯一,值可以重复。(2)Collection存储的是单列元素,子接口Set元素唯一,子接口List可以重复。(3)Map的数据结构针对键有效,跟值无关..._treehash的遍历方法

K8S调度机制和Pod基本故障排查_pod崩溃一般怎么排查-程序员宅基地

文章浏览阅读704次。目录一、调度约束过程解析1.1、调度方式1.2、示例1 nodeName1.3、示例2 nodeSelector二、故障排除2.1、故障现象2.2、排查思路一、调度约束过程解析1、首先,用户可以通过kubectl命令或者dashborad、API调用的方式(用作开发)来创建资源,和管理资源(Kubernetes通过watch的机制进行每个组件的协作,每个组件之间的设计实现了解耦)2、用户提交创建资源的请求给API Server,API Server将创建资源的元信息(属性信息)写入到etcd中,et_pod崩溃一般怎么排查