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)
hero.command(soldier, "defend", defendPos);
# Find the strongest target (most health)
# This function returns something! When you call the function, you will get some value
back.
def findStrongestTarget():
mostHealth = 0
bestTarget = None
enemies = self.findEnemies()
enemyIndex = 0
# Figure out which enemy has the most health, and set bestTarget to be that enemy.
for enemy in enemies:
if enemy.health > mostHealth:
mostHealth = enemy.health
bestTarget = enemy
enemyIndex += 1
# Only focus archers' fire if there is a big ogre.
if bestTarget and bestTarget.health > 15:
return bestTarget
else:
return None
# If the strongestTarget has more than 15 health, attack that target. Otherwise, attack the
nearest target.
def commandArcher(archer):
nearest = archer.findNearestEnemy()
if archerTarget:
hero.command(archer, "attack", archerTarget)
elif nearest:
hero.command(archer, "attack", nearest)
archerTarget = None
while True:
# If archerTarget is defeated or doesn't exist, find a new one.
if not archerTarget or archerTarget.health <= 0:
# Set archerTarget to be the target that is returned by findStrongestTarget()
archerTarget = findStrongestTarget()
friends = hero.findFriends()
soldiers = hero.findByType("soldier")
# Create a variable containing your archers.
archers = hero.findByType("archer")
for i in range(len(soldiers)):
soldier = soldiers[i]
commandSoldier(soldier, i, len(soldiers));
# use commandArcher() to command your archers
for j in range(len(archers)):
archer = archers[j]
commandArcher(archer, j, len(archers));
Could you try again with posting your code? You need to paste all of it between the ‘’’ marks, so that it is formatted. It’s a lot easier to check, and it shows if the indentation is right.
Um, I had to tidy up your code - the indentation is all over the place (possibly from the copy & paste), and you look as though you’ve borrowed some lines from other people. But basically your code works for me (admittedly really slowly, but that might be my computer).
What happens when you run your code? Do you get an error message? Which of the allies do what they’re supposed to?
Can someone send me the whole code in one chunk? I can’t get the code to work with me, and I’m at my wits end. I just want to get past this level, please!
hey, can I get a copy of your code for this level? Im so wiped out from trying to solve it, I just want to get it over with. can you help me out, buddy?
Hey and welcome to the forum! We’re not allowed to give you a code, as that would be cheating, but we can help you out. Could you post your code using the </> button, so we can see what you’ve got?