Endangered Burl trouble


#1
loop:
    enemy = self.findNearestEnemy()
    
    # Remember: don't attack type "burl"!
    if enemy.type is "burl":
        self.say("I'm not attacking that Burl!")

    # The "type" property tells you what kind of creature it is.
    if enemy.type is "munchkin":
        self.attack(enemy)
        self.attack(enemy)
    # Use "if" to attack a "thrower".
    if enemy.type is "thrower":
        self.attack(enemy)
        self.attack(enemy)
    
    # If it's an "ogre", run away to the village gate!
    if enemy.type is "orge":
        self.moveXY(40, 47)

Whats wrong with my code? I have spent a lot of time, trying to figure this out. I have read other forums posts and they do not make sense.


#2

What is the error that is happening? The code does look pretty good to me… The only possible issue I see is that you are attacking twice for munchkins and throwers. Better would be to only attack once each time through the loop, in case the first attack kills them.


#3

Whats the error? could enemy be None?


#4

Ah, I see it: you have “orge” instead of “ogre”.


#5

Also, remember that not always self.findNearestEnemy() will return an enemy (sometimes there isn’t any). In that case your code would fail to find an enemy.type.


#6

@Roberto - The code won’t fail as he has it designed, for this particular level. I just checked the level (and my successful code), and there are always enemy Burl around. However, normally, it is great practice to have if enemy before the enemy.type checks. I do agree on a general basis.