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