On 15.08.2006 08:42, Christopher Spears wrote: > Here is the latest version of my Rock, Paper, Scissors > game: > > #!/usr/bin/python > > import random > random.seed() > > class Human: > def __init__(self): > self.points = 0 > self.choice = " " > > def plays(self): > fromUser = raw_input("Pick (R)ock, (P)aper, or > (S)cissors! ") > translate = {'r':'rock', 's':'scissors', > 'p':'paper'} > try: > self.choice = translate[fromUser.lower()] > except KeyError: > print 'Invalid Response' > > class Computer: > def __init__(self): > self.points = 0 > self.choice = " " > > def plays(self): > comp_choice = random.randint(0,2) > if comp_choice == 0: > self.choice = 'rock' > elif comp_choice == 1: > self.choice = 'paper' > else: > self.choice = 'scissors' > > def compare_objects(human, computer): > print "Human picked ", human.choice > print "Computer picked", computer.choice > results = { 'rock' : {'rock' : 'draw', 'paper': 0, > 'scissors': 1}, > 'paper' : {'rock' : 1, 'paper': 'draw', 'scissors': > 0}, > 'scissors' : {'rock' : 0, 'paper' : 1, 'scissors' : > 'draw'} > } > > outcome = results[human.choice][computer.choice] > if outcome == 0: > print "Computer Wins!" > computer.points = computer.points + 1 > elif outcome == 1: > print "Human Wins!" > human.points = human.points + 1 > else: > print "Draw!" > > > if __name__ == "__main__": > print "Welcome to Rock, Paper, Scissors!" > final_points = raw_input("Play to how many points? ") > human = Human() > computer = Computer() > while (human.points < final_points or computer.points > < final_points): > human.plays() > computer.plays() > compare_objects(human, computer) > print "Score:\tHuman: ",human.points,"\tComputer: > ",computer.points > print "Game Over!" > > > I actually figured out how to build the 2x2 matrix. > I'm quite proud of this. Like all of my good ideas, > the answer came to me in the shower. :-) > > Unfortunately, my while loop doesn't seem to be > working. I've played around with it with no success. > Hints, anyone? >
Look at the type of human.points and final_points: >>> final_points = raw_input("Play to how many points? ") Play to how many points? 10 >>> type(final_points) <type 'str'> >>> 1 < final_points True >>> 100 < final_points True >>> 1000 < final_points True HTH, Wolfram _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor