On Sat, Jul 31, 2010 at 1:51 PM, bob gailer <bgai...@gmail.com> wrote: > 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
You mean my_dmg I think. 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 > > _______________________________________________ > Tutor maillist - tu...@python.org > To unsubscribe or change subscription options: > http://mail.python.org/mailman/listinfo/tutor > _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor