The challenge is to implement a game of 'Rock, Paper, Scissors, Lizard, Spock.' It's just rock paper scissors with more options to reduce the chance of a tie.
Here is my solution:
import random throws = dict(r=['sc','l'], p=['r','sp'], sc=['l','p'], l=['sp','p'], sp=['r','sc']) def userWins(user, comp): ''' True if user wins games ''' if comp in throws[user]: return True return False while True: user_choice = raw_input("Choose (r)ock, (p)aper, (sc)issors, (l)izard, or (sp)ock. Press 'q' to quit: ") comp_choice = random.choice(['r','p','sc','l','sp']) if user_choice == 'q': break print "You choose: %s" % user_choice print "Comp chooses: %s" % comp_choice if userWins(user_choice, comp_choice): print "You win!" elif user_choice==comp_choice: print "It's a tie." else: print "You lose :(" print "Thanks for playing!"
It's an easy challenge but it took me a few minutes to find a solution that wouldn't simply brute force it by going through every possible scenario.