Sarven Shepherd "infinite loop"?


#1

My code in the level Sarven Shepherd looks correct, but it says “Code never finished. It’s either really slow or has a infinite loop.”. Here is my code:

while True:
enemies = hero.findEnemies()
enemyIndex = 0
# Wrap this logic in a while loop to attack all enemies.
# Find the array’s length with: len(enemies)
while enemyIndex < len(enemies):
enemy = enemies[enemyIndex]
# “!=” means "not equal to."
if enemy.type != “sand-yak”:
# While the enemy’s health is greater than 0, attack it!
while enemy.health > 0:
hero.attack(enemy)
enemyIndex+=1
# Between waves, move back to the center.
hero.moveXY(40,32)

Please help me. Thanks


#2

your code looks correct but since it wasn’t formatted properly for this forum, I can’t see the structure. Since the code looks correct, it’s probably a structure issue. Try reading this link on how to paste code here. It’s really simple and basically just involves using the </> button.

Be sure to copy and paste it from the game - not this forum - so that the formatting is retained.


#3

Sorry about that here’s the structure:
while True:

 enemies = hero.findEnemies()
    enemyIndex = 0
    # Wrap this logic in a while loop to attack all enemies.
    # Find the array's length with:  len(enemies)
    while enemyIndex < len(enemies):
        enemy = enemies[enemyIndex]
    # "!=" means "not equal to."
    if enemy.type != "sand-yak":
        # While the enemy's health is greater than 0, attack it!
        while enemy.health > 0:
            hero.attack(enemy)
    enemyIndex+=1
    # Between waves, move back to the center.
    hero.moveXY(40,32)

#4
while True:
    enemies = hero.findEnemies()
    enemyIndex = 0
    # Wrap this logic in a while loop to attack all enemies.
    # Find the array's length with:  len(enemies)
    while enemyIndex < len(enemies):
        enemy = enemies[enemyIndex]
    # "!=" means "not equal to."
    if enemy.type != "sand-yak":
        # While the enemy's health is greater than 0, attack it!
        while enemy.health > 0:
            hero.attack(enemy)
    enemyIndex+=1
    # Between waves, move back to the center.
    hero.moveXY(40,32)

#5

I found my mistake… sorry…


#6

yup, it was a structure issue. :grinning: