On 08/07/13 08:40, Jack Little wrote:

def lvl4combat():
     print "The barracks are constructed of wood and cobblestone."
     print "A large, single cannon sits on the top, searching the sky for enemy 
airships."
     print "The cannon is manned by a single team of three men."
     print "The cannon is large and industrial."
     print "Remember your training."
     cannonhealth=75

Here you start with cannonhealth set to 75. But you never lower the score, so 
it never changes and the loop doesn't end.


     cannondamage=random.choice([10,17,13])
     currhealth=health
     while cannonhealth > 0:
         print "They fired at you!"
         currhealth-cannonhealth

Here you calculate the number (currhealth - cannonhealth), which is the 
difference between your health and the cannon's health, but do nothing with the 
result. Which is probably a good thing, since the calculation doesn't mean 
anything.

Perhaps you meant this?

    currhealth = currenthealth - cannondamage

or even this, which is another way of doing the same calculation:

    currhealth -= cannondamage



         print "Your health is now",currhealth
         combat=raw_input(">>")
         if combat.lower()=="fire cannon 1":
             print "Fired!"
             cannonhealth-attack

Here you calculate the number (cannonhealth - attack), which is the difference 
between the cannon's health and the damage done, but do nothing with the result.

As I suggested the last time you made this same error, you might find it easier 
to see the problem if you put spaces around operators, so that they are a 
little easier to notice and read:

    cannonhealth - attack
    cannonhealth-attack


Like the above, you probably want:

    cannonhealth = cannonhealth - attack


And you make a similar mistake in at least three other places. I will leave you 
to find them.


--
Steven
_______________________________________________
Tutor maillist  -  [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to