Wishing well (python)


#1

i am having an issue with eh level wishing well. My character only goes and collects about 20 coins and then stands there saying Non statis. my code is as follows
’’'
less = "Nimis"
more = "Non satis"
requiredGold = 104

This function calculates the sum of coin values.

def sumCoinValues(coins):
i = 0
total = 0
while i < len(coins):
total += coins[i].value
i += 1
return total

while True:
items = hero.findItems()
goldAmount = sumCoinValues(items)
if len(items) != 0:
# If there is not enough gold, then say “Non satis”.
if goldAmount < 104:
hero.say(“non satis”)
if goldAmount >104:
hero.say(“Nimis”)
if goldAmount == 104:
coins = hero.findItems()
coinIndex = 0
nearest = coin
nearestDistance = 9999
while coinIndex < len(coins):
coin = coins[coinIndex]
coinIndex += 1
distance = hero.distanceTo(coin)
if distance < nearestDistance:
nearest = coin
nearestDistance = distance
if nearest:
hero.moveXY(nearest.pos.x, nearest.pos.y)
’’’


#2

Why do you need an additional code to find the nearest coin? hero.findNearest(coins) can make it simpler.
You are trying to collect only coins which are closer than the fisrt in the list. You can use nested while true and collect coins while they are exist.


#3
less = "Nimis"
more = "Non satis"
requiredGold = 104

# This function calculates the sum of coin values. 
def sumCoinValues(coins):
    i = 0
    total = 0
    while i < len(coins):
        total += coins[i].value
        i += 1
    return total

while True:
    items = hero.findItems()
    goldAmount = sumCoinValues(items)
    if len(items) != 0:
        # If there is not enough gold, then say "Non satis".
        if goldAmount < 104:
            hero.say("non satis")
        if goldAmount > 104:
            hero.say("Nimis")
        if goldAmount == 140:
            while True:
                coins = hero.findItems()
                coinIndex = 0
                nearest = coin
                nearestDistance = 9999
                while coinIndex < len(coins):
                    coin = coins[coinIndex]
                    coinIndex += 1
                    distance = hero.distanceTo(coin)
                    if distance < nearestDistance:
                        nearest = coin
                        nearestDistance = distance
                    if nearest:
                        hero.moveXY(nearest.pos.x, nearest.pos.y)

my code does not seem to e working can some one tell me why its not working


#4

Wrong Number:
if goldAmount == 140:


#5

yeah i fixed that thanks though