「网易官方」极客战记(codecombat)攻略-沙漠-别冲过去,安静点-dont-rush-be-quiet

(点击图片进入关卡)

小心移动,躲避加农炮的炮弹!

简介

你需要在死亡峡谷中收集 8 个宝石。之所以称作死亡峡谷,是因为那里有等待着清扫入侵者的加农炮。

然而这些加农炮只为迅捷的小偷准备,所以如果你移动得慢,也许就能通过。

第一个函数返回 0 至 30 的数。第二个函数应该返回从 0 到 40 的数。

完成任务,宝石就是你的了。

默认代码

# 躲开炮弹,收集8颗宝石。
# 小心,大炮准备开火了!
# 以一个特殊的方式缓慢移动去迷惑敌人

 

# 这个函数返回一个值从0到30之间(0<n<30)。
def mod30(n):
    if n >= 30:
        return n - 30
    else:
        return n

 

# 这一功能将会返回一个从0到40的值
def mod40(n):
    # 使用一个 “if” 语句去返回正确的值

 

    return n

 

# 你不需要改变下面的代码:
while True:
    time = hero.time
    x = mod30(time) + 25
    y = mod40(time) + 10
    hero.moveXY(x, y)

概览

求余(modulo) 操作符返回两数相除的余数。 求余 函数要返回一个 0 到 X 之间的值,其中 X 是除数。 在这里,我们做一个简化版就行。

输入参数 ( n ) 小于 X 时返回输入的值。 不过在 n 大于或等于 X 时得把 n 减去 X 。

第二个函数 mod40 需要返回处于 0 到 40 之间的值。 在示例代码里,只适合 n < 40 的情况。 但当 n>= 40 它会返回错误的值。 为完成函数,你要检查输入值 是否大于或等于 40 -- if (n >= 40) . 如果是,那么减去 40 -- n = n - 40 .

小心,别改变 while 下面的代码。

别冲过去,安静点 解法

# 躲开炮弹,收集8颗宝石。
# 小心,大炮准备开火了!
# 以一个特殊的方式缓慢移动去迷惑敌人

 

# 这个函数返回一个值从0到30之间(0<n<30)。
def mod30(n):
    if n >= 30:
        return n - 30
    else:
        return n

 

# 这一功能将会返回一个从0到40的值
def mod40(n):
    if n >= 40:
        return n - 40
    else:
        return n
    return n

 

# 你不需要改变下面的代码:
while True:
    time = hero.time
    x = mod30(time) + 25
    y = mod40(time) + 10
    hero.moveXY(x, y)
 
本攻略发于极客战记官方教学栏目,原文地址为:
原文地址:https://www.cnblogs.com/codecombat/p/13321006.html