[Tutor] Combat Error
Dave Angel
davea at davea.name
Mon Jul 8 01:03:33 CEST 2013
On 07/07/2013 06:40 PM, Jack Little wrote:
> When the player of my game fire his/her cannon, it is supposed to get rid of some of the enemy's health. It does not. I have no clue what the error is, so I need help. Here is the Python Shell output:
>
>>> fire cannon 1
> Fired!
> Enemy health= 75
> They fired at you!
> Your health is now 55
>>> fire cannon 2
> Fired!
> Enemy health= 75
> They fired at you!
> Your health is now 55
>>> fire cannon 1
> Fired!
> Enemy health= 75
> They fired at you!
> Your health is now 55
>>>
>
>
>
>
> Here is the code:
>
> 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
> cannondamage=random.choice([10,17,13])
> currhealth=health
> while cannonhealth > 0:
> print "They fired at you!"
> currhealth-cannonhealth
> print "Your health is now",currhealth
> combat=raw_input(">>")
> if combat.lower()=="fire cannon 1":
> print "Fired!"
> cannonhealth-attack
This expression has no useful effect. You probably wanted
cannonhealth -= attack
> print "Enemy health=",cannonhealth
> elif combat.lower()=="fire cannon 2":
> print "Fired!"
> cannonhealth-attack
ditto
> print "Enemy health=",cannonhealth
> if currhealth <= 0:
> break
> defeat1()
> if cannonhealth <= 0:
> break
> victory1()
> if kboost==True:
> karma+25*.25
ditto
> elif kboost==False:
> karma+25
ditto
You also have code following break statements that will never execute.
In particular, you'll never call defeat1() or victory1()
--
DaveA
More information about the Tutor
mailing list