Diamond Dozen (HELP NEEDED)


#1

Hello, i’ve been stuck on this level for a long time and finally asking for help.

Here’s my code:

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)

Return the item with the highest valueOverDistance(item)

def findBestItem(items):
bestItem = None
bestValue = 0
itemsIndex = 0

# Loop over the items array.
# Find the item with the highest valueOverDistance()
items = hero.findItems() > vaulueOverDistance()
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)

Also, here’s a picture:


#2

Nooo! Plz use </> or I will faint


#3

Format your code!!! PLZLZLLZ


#4

It says loop over the array. (for loop)

You know what the problem is?

You spelled valueOverDistance wrong…

Misspelling

Also there isn’t an input argument when you called on the valueOverDistance function. put the item you are looping over in the for loop in the input of valueOverDistance.