i am having problems with my code, it does not work when i run it and it says “need an object” at the line i marked.

here is my code:

# You must escort a powerful magical ring back to town to be studied.

# The goal is to escape, not fight. More ogres lurk in the surrounding mountains!

# Make a circle of soldiers around the peasant!

# We give you two functions to help with this:

# findSoldierOffset figures out the position a soldier should stand at in relation to the peasant.

# The first argument ‘soldiers’ should be an array of your soldiers.

# The second argument ‘i’ is the index of the soldier (in soldiers) you want to find the position for.

def findSoldierOffset(soldiers, i):

soldier = soldiers[i]

angle = i * 360 / len(soldiers)

return radialToCartesian(5, angle)

# This function does the math to determine the offset a soldier should stand at.

def radialToCartesian(radius, degrees):

radians = Math.PI / 180 * degrees

xOffset = radius * Math.cos(radians)

yOffset = radius * Math.sin(radians)

return {“x”: xOffset, “y”: yOffset}

peasant = hero.findByType(“peasant”)[0]

# Use findByType to get an array of your soldiers.

while True:

# Use a for-loop to iterate over range(len(soldiers)).

# Use a for-loop to iterate over your array of soldiers.

soldiers = hero.findByType(“soldier”) #<------------- this is where i am having the problem

for i in len(soldiers):

soldier = soldiers[i]

offset = findSoldierOffset(soldiers, i)

offsetX = peasant.pos.x + offset.x

offsetY = peasant.pos.y + offset.y

position = {“x”: offsetY, “y”: offsetY}

hero.command(soldier, “move”, position)

# Find the offset for a soldier.

# Add the offset.x and offset.y to the peasant’s pos.x and pos.y.

# Command the soldier to move to the new offset position.

# The hero should keep pace with the peasant!

hero.move({“x”: hero.pos.x + 0.2, “y”: hero.pos.y})