# program to play rock, paper scissors # Matt Bishop, February 24, 2012 # ECS 10, Winter 2012 # # first version # # list of legal commands cmdlist = ( "rock", "paper", "scissors", "quit" ) # list of winning pairs (first dominates second) winlist = ( ("rock", "scissors"), ("paper", "rock"), ("scissors", "paper") ) # scores score = { "user" : 0, "computer" : 0, "tie" : 0 } # STUB FOR TESTING -- TO BE REPLACED def getuser(): while True: n = input("Human: enter rock, paper, scissors, quit: ") if n not in cmdlist: print("Bad input; try again") else: break return n # STUB FOR TESTING -- TO BE REPLACED def getcomp(): while True: n = input("Computer: enter rock, paper, scissors, quit: ") if n not in cmdlist: print("Bad input; try again") else: break return n # function to determine who wins # parameters: user: user's selection # computer's selection # returns: "user" if user won # "computer" if computer won # "tie" if tie def whowins(user, comp): if user == comp: win = "tie" elif (user, comp) in winlist: win = "user" else: win = "computer" return win # pulling it all together # calls: getuser(), getcomp(), whowins() def main(): # now we play while True: # get the user's choice userchoice = getuser(); if (userchoice == "quit"): break # get the computer's choice compchoice = getcomp(); # figure out who won winner = whowins(userchoice, compchoice) # announce it to the world! if winner == "user": print("You win") elif winner == "computer": print("Computer wins") elif winner == "tie": print("Tie") else: print("*** INTERNAL ERROR *** winner is", winner) break # track the new score score[winner] += 1; # # announce the final score, with good grammar # print("You won", end=' ') if score["user"] == 1: print("1 game, the computer won", end=' ') else: print(score["user"], "games, the computer won", end=' ') if score["computer"] == 1: print("1 game, and you two tied", end=' ') else: print(score["computer"], "games, and you two tied", end=' ') if score["tie"] == 1: print("1 game.") else: print(score["tie"], "games.") main()