# What is wrong with my code? Python, Sand Snakes

#1

I can’t figure out why this is not working

``````loop:
coins = self.findItems()
coinIndex = 0
nearest = None
nearestDistance = 9999

# Loop through all the coins to find the nearest one.
while coinIndex < len(coins):
# while the coinindex (0) is less than the number of coins
coin = coins[coinIndex]
# coin is the items in the coinindex
coinIndex += 1
# add 1 to the coinindex
distance = self.distanceTo(coin)
#the distance is my distance to the items in the coin index
if distance < nearestDistance:
# if my distance to the coin is less than the nearest distance
nearest = coin
# nearest becomes the items in the coinindex
nearestDistance = distance
#nearestdistance becomes the distance to the coins in the coin index
if nearest:
#if theres an item in the coin index
self.moveXY(nearest.pos.x, nearest.pos.y)
#move to the item
``````

#2

If you move to `nearest` while you’re inside the while-loop, You’re just going to move to the first coin that gets assigned to `nearest`. Move the part where you move to the nearest coin outside the while-loop.

#3

Can someone explain this statement?

My understanding of this code is that the while-loop is going through all of the coins in the level, and isolating the one closest to the hero.

So nearestdistance is the distance between the hero and the closest coin.
Wouldn’t “if distance == nearestDistance:” make it so that the nearest coin is selected? How can any coin be closer than the nearest coin?

I predict I’m misunderstanding what nearestDistance means, and probably other concepts.

Cheers

#4

if when you use the distance function - if what it returns is lower than your variable nearestDistance…currently 9999, from the top of your code… then do what ever follows