「网易官方」极客战记(codecombat)攻略-沙漠-拦截-interception

 
(点击图片进入关卡)

沙漠中的财宝!不幸的是,食人魔已经先人一步了。在你的农民搬运宝物的时候保护他们!

简介

通过移动到塔和你的朋友之间的位置来保护农民。

为 x 和 y 计算 enemy 和 friend 之间的中间点。

首先,添加它们的'x'坐标,然后除以 2:

x = (friend.pos.x + enemy.pos.x) / 2

然后对 y 做同样的事情。

默认代码

# 站在农民和塔之间。
while True:
    enemy = hero.findNearestEnemy()
    friend = hero.findNearestFriend()
    # 通过将friend.pos.x添加到enemy.pos.x来计算x
    # 然后除以2
    # 如果你需要更多的帮助就检查指南!

 

    # 现在对y做同样的事情

 

    # 移动到您计算的X和Y坐标。

概览

在塔和朋友中间站着保护农民。

这关你要找到两点的中点。

举个简单点的例子,在 1D 里!

假设塔在 x: 0 ,农民在 x: 10 。那么两个位置的中点在哪里呢?

(0 + 10) / 2 == 5

这很明显是对的, 5 比 0 大,比 10 小。

但塔的 x 坐标不是 0 又怎么样?好吧,照样管用!将塔移动到 6 ,再找出中点:

(6 + 10) / 2 == 8

也通过了测试。那现在 X 和 Y 一起来会怎样?稍微加大了难度,不过也差不多:

x = (tower.pos.x + peasant.pos.x) / 2
y = (tower.pos.y + peasant.pos.y) / 2

回到关卡,试试看。你就像保护农民的士兵!

拦截 解法

# 站在农民和塔之间。
while True:
    enemy = hero.findNearestEnemy()
    friend = hero.findNearestFriend()
    # 通过将friend.pos.x添加到enemy.pos.x来计算x
    # 然后除以2
    # 如果你需要更多的帮助就检查指南!
    x = (friend.pos.x + enemy.pos.x) / 2
    # 现在对y做同样的事情
    y = (friend.pos.y + enemy.pos.y) / 2
    # 移动到您计算的X和Y坐标。
    
    hero.moveXY(x, y)
 
本攻略发于极客战记官方教学栏目,原文地址为:
 
 
原文地址:https://www.cnblogs.com/codecombat/p/13157199.html