codecombat计算机科学入门6.4拓地
下面我先简单分析一下这一关的要求:
(终结版代码在最后面)
读题:
(这个题我第一次读的时候真的很晕,完全靠测试代码才弄懂到底什么意思)
1、我们的弓箭手(射手)是红方,蓝衣弓箭手是克隆体,
2、如果我们的红衣弓箭手接触到自己对映的蓝衣弓箭手(克隆体),蓝衣弓箭手就会倒下
3、如果红衣弓箭手找错自己对映的蓝衣弓箭手(克隆体),蓝衣弓箭手会反过来攻击红衣弓箭手和英雄
4、如何正确找到红衣弓箭手对映的蓝衣弓箭手(克隆体),这个关卡已经给出该函数,我们之后直接调用函数就可以了
找到每个红衣弓箭手对映的克隆体并不是一件很难的事,如下代码
# 为你的每个弓箭手找到对手。
# 迭代所有的朋友。
for friend in friends:
# 为每个朋友迭代所有敌人。
for i in range(len(enemies)):
if areAntipodes(friend,enemies[i]):
# 检查当前的朋友和敌人是否是反对象。
# 如果它们是对映体,则命令该朋友移向敌人。
hero.command(friend, "move", enemies[i].pos)
break
这一关真正的难点在这里
当所有克隆消失时,攻击术士
while clonevanish:
这从何写起…
以下开始了我的疯狂测试:
(自我感觉有强迫症,尤其在测试代码这块)
1、测试“clone”是不是游戏系统已生成的对象 ×
2、测试“Clone”是不是游戏系统已生成的对象 ×
3、加入变量i去计数,每找到一个对映体i+=1,while i>=7,代表克隆体全部死亡×
friends = hero.findFriends()
enemies = hero.findEnemies()
# 为你的每个弓箭手找到对手。
# 迭代所有的朋友。
j=0
for friend in friends:
# 为每个朋友迭代所有敌人。
for i in range(len(enemies