[SOLVED] Library tactician help[python]

when i run my code it freezes up and nothing happens

``````def commandSoldier(soldier, soldierIndex, numSoldiers):
angle = Math.PI * 2 * soldierIndex / numSoldiers
defendPos = {"x": 41, "y": 40}
defendPos.x += 10 * Math.cos(angle)
defendPos.y += 10 * Math.sin(angle)
self.command(soldier, "defend", defendPos);

def findStrongestTarget():
mostHealth = 0
bestTarget = findStrongestTarget()
enemies = self.findEnemies()
enemyIndex = 0
for enemy in enemies:
if enemy.health > mostHealth:
bestTarget = enemy
mostHealth = enemy.health
bestTarget = enemy
if bestTarget and bestTarget.health > 15:
return bestTarget
else:
return None

def commandArcher(archer):
nearest = archer.findNearestEnemy()
if archerTarget:
self.command(archer, "attack", archerTarget)
elif nearest:
self.command(archer, "attack", nearest)

archerTarget = None

while True:

if self.gold > self.costOf("soldier"):
self.summon("soldier")
if not archerTarget or archerTarget.health <= 0:
archerTarget = findStrongestTarget()
friends = self.findFriends()
soldiers = self.findByType("soldier")
archers = self.findByType("archers")
for i, soldier in enumerate(soldiers):
commandSoldier(soldier, i, len(soldiers));
for i in range(len(archers)):
archer = archers[i]
commandArcher(archer)
``````

Hi,
The reason you have an infinite loop is this line:

Why are you calling the function inside the function? This is called recursion, and you will do it in the glacier, but at the moment all itâ€™s doing is causing an infinite loop.
Imagine how the code would run:

Then it will just go: 1, 2, 3, --1, 2, 3, --1, 2, 3, --1 etcâ€¦
Thatâ€™s your infinite loop. Instead you can define it as None, as you did in earlier array levels.
Your code still doesnâ€™t work, but you havenâ€™t had an opportunity to test it, so I wonâ€™t say anything else.
Danny

1 Like

Okay I will try that

This topic was automatically closed 12 hours after the last reply. New replies are no longer allowed.

i could use alot of help on this level, if its okay i would like to post in javascript because im crap at everything else.