[Tutor] Python - RPG Combat System
bob gailer
bgailer at gmail.com
Sat Jul 31 19:51:26 CEST 2010
On 7/30/2010 10:49 PM, Jason MacFiggen wrote:
> what can I do instead of writing print so many times?
> import random
> my_hp = 50
> mo_hp = 50
> my_dmg = random.randrange(1, 20)
> mo_dmg = random.randrange(1, 20)
> while True:
> if mo_hp < 0:
> print "The Lich King has been slain!"
> elif my_hp < 0:
> print "You have been slain by the Lich King!"
> if mo_hp <= 0:
> break
> elif my_hp <= 0:
> break
> else:
> print "Menu Selections: "
> print "1 - Attack"
> print "2 - Defend"
> print
> choice = input ("Enter your selection. ")
> choice = float(choice)
> print
> if choice == 1:
> mo_hp = mo_hp - my_dmg
> print "The Lich King is at ", mo_hp, "Hit Points"
> print "You did ", my_dmg, "damage!"
> print
> my_hp = my_hp - mo_dmg
> print "I was attacked by the lk for ", mo_dmg," damage!"
> print "My Hit Points are ", my_hp
> print
> elif choice == 2:
> mo_hp = mo_hp - my_dmg / 2
> print "The Lich King is at", mo_hp, "Hit Points"
> print "you did ", my_dmg / 2, "damage!"
> print
> my_hp = my_hp - mo_dmg
> print "I was attacked by the lk for ", mo_dmg," damage!"
> print "My Hit Points are ", my_hp
> print
Most of the statements in each choice block are identical. Factor them
out, giving:
if choice == 1:
mo_hp = mo_hp - my_dmg
print "you did ", my_dmg /, "damage!"
elif choice == 2:
mo_hp = mo_hp - my_dmg / 2
print "you did ", my_dmg / 2, "damage!"
print "The Lich King is at", mo_hp, "Hit Points"
my_hp = my_hp - mo_dmg
print "You did ", my_dmg, "damage!"
print
print "I was attacked by the lk for ", mo_dmg," damage!"
print "My Hit Points are ", my_hp
print
You could (better) move these statements into a function, passing 1 or 2
as the divisor for my_dmg and returning the updated values for my_ho and
my_hp.
def update(factor):
print "The Lich King is at", mo_hp, "Hit Points"
print "you did ", my_dmg / factor, "damage!"
print
print "I was attacked by the lk for ", mo_dmg," damage!"
print "My Hit Points are ", my_hp
print
return mo_hp - my_dmg / factor, my_hp - mo_dmg
...
if choice == 1:
mo_hp, my_hp = update(1)
elif choice == 2:
mo_hp, my_hp = update(2)
--
Bob Gailer
919-636-4239
Chapel Hill NC
More information about the Tutor
mailing list