[Tutor] Rock, Paper, Scissors
Christopher Spears
cspears2002 at yahoo.com
Fri Aug 11 01:39:41 CEST 2006
Here is my Rock,Paper,Scissors script:
#!/usr/bin/python
import random
random.seed()
class Human:
def __init__(self):
self.points = 0
self.choice = " "
def plays(self):
self.choice = raw_input("Pick (R)ock, (P)aper, or
(S)cissors! ")
if self.choice == 'r':
self.choice = 'rocks'
elif self.choice == 'p':
self.choice = 'paper'
elif self.choice == 's':
self.choice = 'scissors'
else:
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 = 'rocks' #for rocks
elif comp_choice == 1:
self.choice = 'paper' #for paper
else:
self.choice = 'scissors' #for scissors
def compare_objects(human, computer):
print "Human picked ", human.choice
print "Computer picked", computer.choice
if human.choice == computer.choice:
print "Draw!"
elif human.choice == 'rocks' and computer.choice ==
'paper':
print "Computer wins!"
computer.points = computer.points + 1
elif human.choice == 'paper' and computer.choice ==
'rocks':
print "Human wins!"
human.points = human.points + 1
elif human.choice == 'scissors' and computer.choice
== 'paper':
print "Human wins!"
human.points = human.points + 1
elif human.choice == 'paper' and computer.choice ==
'scissors':
print "Computer wins!"
computer.points = computer.points + 1
elif human.choice == 'rocks' and computer.choice ==
'scissors':
print "Human wins!"
human.points = human.points + 1
else human.choice == 'scissors' and computer.choice
== 'rocks':
print "Computer wins!"
computer.points = computer.points + 1
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
My main concern is the compare_objects function. Is
there any easier way to write it? Actually, the
function does not work because "else condition:"
causes a syntax error.
-Chris
More information about the Tutor
mailing list