Need help on Hunters and Prey: Python


#1

This is my code:

Ogres are trying to kill your reindeer!

Keep your archers back while summoning soldiers to attack.

def pickUpCoin():
# Collect coins.
nearest = hero.findNearest(hero.findItems())
hero.moveXY(nearest.pos.x,nearest.pos.y)
pass

def summonTroops():
# Summon soldiers if you have the gold.
if hero.costOf(“soldier”)<hero.gold:
hero.summon(“soldier”)
pass

This function has an argument named soldier.

Arguments are like variables.

The value of an argument is determined when the function is called.

def commandSoldier(soldier):
# Soldiers should attack enemies.
friends = hero.findFriends()
enemies = hero.findEnemies()
n = hero.findNearest(enemies)
hero.command(friends, “attack”, n)
pass

Write a commandArcher function to tell your archers what to do!

It should take one argument that will represent the archer passed to the function when it’s called.

Archers should only attack enemies who are closer than 25 meters, otherwise, stay still.

def commandArcher(archer):
enemy = archer.findNearest(self.findenemies)
if enemy and archer.distanceto(enemy) < 25:
self.command(archer, “attack”, enemy)
else:
self.command(archer, “move”, archer.pos)
while True:
pickUpCoin()
summonTroops()
friends = hero.findFriends()
for friend in friends:
if friend.type == “soldier”:
# This friend will be assigned to the variable soldier in commandSoldier
self.commandSoldier(friend)
elif friend.type == “archer”:
# Be sure to command your archers
self.commandArcher(friend).
pass

It keeps saying I have not defined command archer but, I did:

def commandArcher(archer):
enemy = archer.findNearest(self.findenemies)
if enemy and archer.distanceto(enemy) < 25:
self.command(archer, “attack”, enemy)
else:
self.command(archer, “move”, archer.pos)
Is it a glitch???


#2

I found out :smile:

Also I think it is annoying that you must have 20 characters :disappointed: