「网易官方」极客战记(codecombat)攻略-沙漠-沙漠核心-crux-of-the-desert

摘要:
食人魔从非主要方向攻击!你好你好。moveXY概述在这个阶段,兽人从对角方向进攻!下方敌人的位置将小于英雄的位置。然而,有一种更清晰的写法:敌人=英雄。findNearestEnemy()if敌人:isAbove=敌人。位置y˃英雄。pos yisLeft=敌人。位置xenemy.pos。x#上:enemy.po.y大于hero。PosyisAbove=hero.Posy˂enemy.pos.y#右:enemy.php。x大于hero,posxisRight=hero.positx.posx˂enemy.php,x#下:enemy.pos.y小于heroX标记处的“陷阱”。如果是左和右:英雄。buildXY#如果敌人在右侧上方:#buildXY()是X标记处的“陷阱”。我是对的,我是英雄。buildXY#如果敌人在底部和左侧:#buildXY()是X标记处的“陷阱”。
「网易官方」极客战记(codecombat)攻略-沙漠-沙漠核心-crux-of-the-desert第1张
(点击图片进入关卡)

食人魔们从非主要方向进攻!放置灭火器来教他们不要再次逆火而行。

简介

「网易官方」极客战记(codecombat)攻略-沙漠-沙漠核心-crux-of-the-desert第2张

兽人从对角线方向攻来。

首先,找到敌人是 isAbove (在上面) 还是 isBelow (在下面) 。

然后找出敌人是 isLeft (在左边) 还是 isRight (在右边)

然后,综合所有条件在正确的 X 标记处建造 "fire-trap" 。

默认代码

# 找出食人魔是来自哪个方向的
while True:
    enemy = hero.findNearestEnemy()
    if enemy:
        # 左边:enemy.pos.x小于hero.pos.x
        isLeft = hero.pos.x > enemy.pos.x
        # 上方:enemy.pos.y大于hero.pos.y
        isAbove = hero.pos.y < enemy.pos.y
        # 右边:enemy.pos.x大于hero.pos.x

 

        # 下方:enemy.pos.y小于hero.pos.y

 

        # 如果敌人在上方 (isAbove) 和 左边 (isLeft):
        # buildXY()是X标记处的一个"fire-trap"。
        if isLeft and isAbove:
            hero.buildXY("fire-trap", 20, 51)
        # 如果敌人在上方 (isAbove) 和右边 (isRight):
        # buildXY()是X标记处的一个"fire-trap"。

 

        # 如果敌人在下方 (isBelow) 和左边 (isLeft):
        # buildXY()是X标记处的一个"fire-trap"。

 

        # 如果敌人在下方 (isBelow) 和右边 (isRight):
        # buildXY()是X标记处的一个"fire-trap"。

 

        hero.moveXY(40, 34)
    else:
        hero.moveXY(40, 34)

概览

在这关,兽人从对角线方向进攻!

在 左边 的敌人的 pos.x 会小于英雄的 pos.x 。

在 右边 的敌人的 pos.x 会大于英雄的 `pos.x'。

在 上边 的敌人的 pos.y 会大于英雄的 pos.y 。

在 下边 的敌人的 pos.y 会小于英雄的 pos.y 。

检查敌人是否在左上角,大概这样做:

enemy = hero.findNearestEnemy()
if enemy:
    if enemy.pos.x < hero.pos.x and enemy.pos.y > hero.pos.y:
        # 在左上角建造陷阱。

不过有更加清晰的写法:

enemy = hero.findNearestEnemy()
if enemy:
    isAbove = enemy.pos.y > hero.pos.y
    isLeft = enemy.pos.x < hero.pos.x
    if isAbove and isLeft:
        # 在左上角建造陷阱。

不仅方便补全其他方向的代码,还容易看懂!

沙漠核心 解法

# 找出食人魔是来自哪个方向的
while True:
    enemy = hero.findNearestEnemy()
    if enemy:
        # 左边:enemy.pos.x小于hero.pos.x
        isLeft = hero.pos.x > enemy.pos.x
        # 上方:enemy.pos.y大于hero.pos.y
        isAbove = hero.pos.y < enemy.pos.y
        # 右边:enemy.pos.x大于hero.pos.x
        isRight = hero.pos.x < enemy.pos.x
        # 下方:enemy.pos.y小于hero.pos.y
        isBelow = hero.pos.y > enemy.pos.y
        # 如果敌人在上方 (isAbove) 和 左边 (isLeft):
        # buildXY()是X标记处的一个"fire-trap"。
        if isLeft and isAbove:
            hero.buildXY("fire-trap", 20, 51)
        # 如果敌人在上方 (isAbove) 和右边 (isRight):
        # buildXY()是X标记处的一个"fire-trap"。
        if isRight and isAbove:
            hero.buildXY("fire-trap", 60, 51)
        # 如果敌人在下方 (isBelow) 和左边 (isLeft):
        # buildXY()是X标记处的一个"fire-trap"。
        if isLeft and isBelow:
            hero.buildXY("fire-trap", 20, 17)
        # 如果敌人在下方 (isBelow) 和右边 (isRight):
        # buildXY()是X标记处的一个"fire-trap"。
        if isRight and isBelow:
            hero.buildXY("fire-trap", 60, 17)
        hero.moveXY(40, 34)
    else:
        hero.moveXY(40, 34)
 
本攻略发于极客战记官方教学栏目,原文地址为:
 
 
 

免责声明:文章转载自《「网易官方」极客战记(codecombat)攻略-沙漠-沙漠核心-crux-of-the-desert》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇微博第三方登陆请求授权出现错误码:21322(重定向地址不匹配)的解决方法webpack9--删除冗余的CSS下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Shell脚本调试技术

一. 前言 shell编程在unix/linux世界中使用得非常广泛,熟练掌握shell编程也是成为一名优秀的unix/linux开发者和系统管理员的必经之路。脚本调试的主要工作就是发现引发脚本错误的原因以及在脚本源代码中定位发生错误的行,常用的手段包括分析输出的错误信息,通过在脚本中加入调试语句,输出调试信息来辅助诊断错误,利用调试工具等。但与其它高级语...

Shell调试技术总结(一)

-Shell调试技术总结 学习没种语言都会在编写程序中遇到错误,当然shell也不例外。Shell脚本的错误主要可分为两类:第一类是shell脚本中的语法错误,脚本无法执行到底,第二类是shell脚本能够执行完毕,但并不能按照我们预期的结果那样,也就是存在逻辑错误。 第一类错误主要包括漏掉关键字、漏掉引号、空格符该有而未有、变量大小写没去分等。这一类错误一...

shell调试技术

一. 前言 shell编程在unix/linux世界中使用得非常广泛,熟练掌握shell编程也是成为一名优秀的unix/linux开发者和系统管理员的必经之路。脚本调试的主要工作就是发现引发脚本错误的原因以及在脚本源代码中定位发生错误的行,常用的手段包括分析输出的错误信息,通过在脚本中加入调试语句,输出调试信息来辅助诊断错误,利用调试工具等。但与其它高级语...

shell脚本调试技术_转

转自:http://itlab.idcquan.com/linux/SHELL/727128.html 参考:https://linux.cn/article-8045-1.html 本文全面系统地介绍了shell脚本调试技术,包括使用echo, tee, trap等命令输出关键信息,跟踪变量的值,在脚本中植入调试钩子,使用“-n”选项进行shell脚本的...

华三SNMP配置详解

一、SNMP配置 1.1  SNMP简介 SNMP(Simple Network Management Protocol,简单网络管理协议)是网络中管理设备和被管理设备之间的通信规则,它定义了一系列消息、方法和语法,用于实现管理设备对被管理设备的访问和管理。SNMP具有以下优势:   自动化网络管理。网络管理员可以利用SNMP平台在网络上的节点检索信息、修...

snmptrap、snmpinform和snmptrapd的详细介绍及其用法

在snmpwalk介绍及其用法一文中,介绍过net-snmp的snmpwalk的用法,殊不知,net-snmp还有trap的命令程序,可以用来测试snmp的trap方法(包括inform方法)。这些命令程序是:snmptrap、snmpinform和snmptrapd。其中: snmptrap:可以模拟snmp agent发送一个trap到snmp管理端...