关卡概览和解法
用你新获得的编码技能寻找没有名字的敌人作为目标。
简介
闯关学习地址:https://www.codewar.cn/play/dungeon(复制到浏览器打开)
变量 (Variables) 包含着以后要用到的信息。你可以随意将一个值(Value)保存到变量里。
使用 findNearestEnemy() 定位最近的敌人。
closestEnemy = hero.findNearestEnemy()
默认代码
# 你的英雄不知道这些敌人的名字!
# 这眼镜给了你 “findNearestEnemy” 寻找最近敌人的能力。
# 将hero.findNearestEnemy()的结果赋值给变量enemy1:
enemy1 = hero.findNearestEnemy()
# enemy1现在指向最近的敌人。使用变量进行攻击!
hero.attack(enemy1)
hero.attack(enemy1)
# enemy1已被打败,再次调用hero.findNearestEnemy()将会找到附近的新敌人。
enemy2 = hero.findNearestEnemy()
hero.attack(enemy2)
hero.attack(enemy2)
# 将hero.findNearestEnemy()的结果赋值给变量enemy3:
# 现在使用enemy3变量进行攻击。
概览
还记得上个关卡吗?变量(Variables) 是代表数据的符号。顾名思义,变量的值(value)会在你存储新数据的时候发生 变化。
现在我们不用敌人的名字了,而是用你刚获得的眼镜和 findNearestEnemy() 方法将对食人魔的引用保存到变量里。这样你就不用事先知道敌人的名称了。
当你调用 findNearestEnemy() 方法时,你 必须将结果保存到一个变量里 ,就像 enemy3 (你可以用你想用的名字代替). 当你调用 findNearestEnemy() 方法时,变量会记得 上次 调用 findNearestEnemy的结果,所以最好及时更新。
记住: 当你使用双引号时, 你创造了一个 字符串, 就像 "Kratt". 当你不使用双引号时(如enemy1), 你在引用名叫 enemy1 的 变量.
食人魔矮人要打两次才能死.
Master of Names解法
# 你的英雄不知道这些敌人的名字!
# 这眼镜给了你 “findNearestEnemy” 寻找最近敌人的能力。
# 将hero.findNearestEnemy()的结果赋值给变量enemy1:
enemy1 = hero.findNearestEnemy()
# enemy1现在指向最近的敌人。使用变量进行攻击!
hero.attack(enemy1)
hero.attack(enemy1)
# enemy1已被打败,再次调用hero.findNearestEnemy()将会找到附近的新敌人。
enemy2 = hero.findNearestEnemy()
hero.attack(enemy2)
hero.attack(enemy2)
# 将hero.findNearestEnemy()的结果赋值给变量enemy3:
enemy3 = hero.findNearestEnemy()
# 现在使用enemy3变量进行攻击。
hero.attack(enemy3)
hero.attack(enemy3)
关卡概览和解法
用你获得的眼镜的能力去找到并攻击Kithmen。
简介
敬请期待!
默认代码
# 创建第二个变量并进行攻击.
enemy1 = hero.findNearestEnemy()
hero.attack(enemy1)
hero.attack(enemy1)
概览
因为你不知道那些食人魔的名字, 所以你要用眼镜的 findNearestEnemy 方法在变量里存储对食人魔的引用.
当你调用 findNearestEnemy 方法时, 你 必须将结果保存进变量里, 如 enemy2 (你可以随便起个你喜欢的名字). 变量会记得 上次 调用 findNearestEnemy 的结果,所以最好及时更新。
记住: 当你像 "Kratt" 这样使用引号时, 你创建了一个 字符串. 当你像 enemy1 这样没用引号时, 你就是在引用 enemy1 这个 变量.
Lowly Kithmen解法
# 创建第二个变量并进行攻击.
enemy1 = hero.findNearestEnemy()
hero.attack(enemy1)
hero.attack(enemy1)
enemy1 = hero.findNearestEnemy()
hero.attack(enemy1)
hero.attack(enemy1)
hero.moveDown()
hero.moveRight()
hero.moveRight()
关卡概览和解法
有些敌人需要用不同战术应对.
简介
敬请期待!
默认代码
hero.moveRight()
# 通过上一个关卡,你应该能认识这个。
enemy1 = hero.findNearestEnemy()
# 现在,攻击enemy1
概览
像上一关那样,你可以用来自眼镜的 findNearestEnemy 方法把食人魔的引用(reference) 存储进变量中。
当你调用 findNearestEnemy 方法时,你 要将结果保存进变量,比如 enemy2 (名字随你)。变量会记得 上次 调用 findNearestEnemy 的结果,所以最好及时更新。
记得:使用 findNearestEnemy 时,敌人要在你的视野中,否则你看不到它们。
这关新增了一种敌人,食人魔投掷者,它造成的伤害比之前遇到的食人魔矮人要多。以后你会见到更多类型的敌人。
Closing the Distance解法
hero.moveRight()
# 通过上一个关卡,你应该能认识这个。
enemy1 = hero.findNearestEnemy()
# 现在,攻击enemy1
hero.attack(enemy1)
hero.attack(enemy1)
hero.moveRight()
enemy1 = hero.findNearestEnemy()
hero.attack(enemy1)
hero.moveRight(2)
关卡概览和解法
使用新的编码能力瞄准无名的敌人。
简介
这是一个关于变量的概念挑战关卡。
这是一个特殊的调试关卡。
关卡的代码已经给您,但它包含一个或多个错误。
您的工作是找出错误并改正!
默认代码
# 下面的代码有一个错误。
# 试着弄清错误是什么,然后修复它!
enemy1 = hero.findNearestEnemy()
hero.attack(enemy1)
hero.attack(enemy1)
enemy2 = hero.findNearestEnemy()
hero.attack(enemy2)
hero.attack(enemy2)
enemy = hero.findNearestEnemy()
hero.attack(enemy3)
hero.attack(enemy3)
概览
变量(Variables) 是代表数据的符号。
顾名思义,变量的值(value)会在你存储新数据的时候发生变化。
现在我们不用知道敌人的名字,而是用眼镜和 findNearestEnemy() 方法 将对食人魔的引用保存到变量中。这样就不用直接使用敌人的名字了。
调用 findNearestEnemy() 方法时,必须将结果保存到一个变量里 , 如enemy3 (也可以用任何别的名字来代替)。变量会记住 调用 findNearestEnemy() 方法时的敌人是谁。因此你需要确保在附近看到敌人时调用它。
记住:使用双引号,如"Kratt",这是在创建字符串。而不使用双引号,像enemy1这样,则是在引用名为enemy1的变量。
Master Of Names Debug解法
# 下面的代码有一个错误。
# 试着弄清错误是什么,然后修复它!
enemy1 = hero.findNearestEnemy()
hero.attack(enemy1)
hero.attack(enemy1)
enemy2 = hero.findNearestEnemy()
hero.attack(enemy2)
hero.attack(enemy2)
enemy3 = hero.findNearestEnemy()
hero.attack(enemy3)
hero.attack(enemy3)