# Rock-paper-scissors-lizard-Spock
import random
# The key idea of this program is to equate the strings
# "rock", "paper", "scissors", "lizard", "Spock" to numbers
# as follows:
#
# 0 - rock
# 1 - Spock
# 2 - paper
# 3 - lizard
# 4 - scissors
def number_to_name(number):
if number == 0:
name = 'rock'
elif number == 1:
name = 'Spock'
elif number == 2:
name = 'paper'
elif number == 3:
name = 'lizard'
elif number == 4:
name = 'scissors'
else:
name = None
return name
def name_to_number(name):
if name == 'rock':
number = 0
elif name == 'Spock':
number = 1
elif name == 'paper':
number = 2
elif name == 'lizard':
number = 3
elif name == 'scissors':
number = 4
else:
number = None
return number
# find_winner returns:
# 1 if first number wins,
# 2 if second number wins,
# 0 if it's a tie
def find_winner(first_number, second_number):
modulo_five = (first_number - second_number) % 5
if modulo_five > 2:
winner = 2
elif modulo_five > 0:
winner = 1
else:
winner = 0
return winner
def rpsls(player_name):
player_number = name_to_number(player_name)
comp_number = random.randrange(0, 5)
comp_name = number_to_name(comp_number)
winner = find_winner(player_number, comp_number)
print "Player chooses", player_name
print "Computer chooses", comp_name
if winner == 1:
print "Player wins!"
elif winner == 2:
print "Computer wins!"
else:
print "Player and computer tie!"
print ""
if __name__ == '__main__':
rpsls("rock")
rpsls("Spock")
rpsls("paper")
rpsls("lizard")
rpsls("scissors")