CodeCombat 沙漠的 一打宝石 这关怎么过啊?
codecombat吧
全部回复
仅看楼主
level 3
张栩烽 楼主
请教大家,我这个有问题啊。
——————————————————————————
# 打败前来劫掠的食人魔,让他们把金币交出来!
def findMostHealth(enemies):
target = None
targetHealth = 0
enemyIndex = 0
while enemyIndex < len(enemies):
enemy = enemies[enemyIndex]
if enemy.health > targetHealth:
target = enemy
targetHealth = enemy.health
enemyIndex += 1
return target
def valueOverDistance(item):
return item.value / hero.distanceTo(item)
# 返回有最高 valueOverDistance(item) 的物品。
def findBestItem(items):
bestItem = None
bestValue = 0
itemsIndex = 0
# 循环于 items 数组内。
# 发现这个物品的最高 valueOverDistance()
while itemsIndex < len(items):
item = items[itemsIndex]
if valueOverDistance(item) >= valueOverDistance(bestItem):
bestItem = item
bestValue = item.value
itemsIndex += 1
return bestItem
while True:
enemies = hero.findEnemies()
enemy = findMostHealth(enemies)
if enemy and enemy.health > 15:
while enemy.health > 0:
hero.attack(enemy)
else:
coins = hero.findItems()
coin = None
coin = findBestItem(coins)
if coin:
hero.moveXY(coin.pos.x, coin.pos.y)
2017年02月21日 08点02分 1
level 3
张栩烽 楼主
帮帮我呀
2017年02月22日 07点02分 2
level 1
if valueOverDistance(item) >= valueOverDistance(bestItem):
改成if valueOverDistance(item) > bestValue:
if enemy and enemy.health > 15:
后面的没必要吧,改成if enemy:
2017年02月23日 01点02分 3
不行。最后得到$33,还是失败了。
2017年02月24日 08点02分
level 1
def findMostHealth(enemies):
target = None
targetHealth = 0
enemyIndex = 0
while enemyIndex < len(enemies):
enemy = enemies[enemyIndex]
if enemy.health > targetHealth:
target = enemy
targetHealth = enemy.health
enemyIndex += 1
return target
def valueOverDistance(item):
return item.value / hero.distanceTo(item)
# 返回有最高 valueOverDistance(item) 的物品。
def findBestItem(items):
bestItem = None
bestValue = 0
itemsIndex = 0
# 循环于 items 数组内。
# 发现这个物品的最高 valueOverDistance()
while itemsIndex < len(items):
item = items[itemsIndex]
if valueOverDistance(item) > bestValue:
bestItem = item
bestValue = valueOverDistance(item)
itemsIndex += 1
return bestItem
while True:
enemies = hero.findEnemies()
enemy = findMostHealth(enemies)
if enemy and enemy.health > 15:
while enemy.health > 0:
hero.attack(enemy)
else:
coins = hero.findItems()
coin = None
coin = findBestItem(coins)
if coin:
hero.moveXY(coin.pos.x, coin.pos.y)
鞋子速度最好 +2.5
人物我换了“艾达女士”,不知道有没影响
2017年03月23日 18点03分 4
谢谢啊。我之前试了几个句子都没对,换了你的就对了。2.5的鞋子能够得到51,2的鞋子得到50,不用换英雄都能过关。[大拇指]
2017年03月28日 09点03分
按照你这个代码还是显示目标未完成啊
2017年10月14日 14点10分
level 1
后面那关怎么过啊 求教
2017年06月23日 09点06分 5
1