Created
October 25, 2013 08:47
-
-
Save elpargo/7151554 to your computer and use it in GitHub Desktop.
rpsls.py
Simple version
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Rock-paper-scissors-lizard-Spock template | |
# 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 | |
# helper functions | |
items = {0:"rock", | |
1:"Spock", | |
2:"paper", | |
3:"lizard", | |
4:"scissors", | |
} | |
def number_to_name(number): | |
# fill in your code below | |
# convert number to a name using if/elif/else | |
# don't forget to return the result! | |
name = items.get(number) | |
if name: | |
return name | |
else: | |
return "Invalid Choice %s" % name | |
def name_to_number(name): | |
# fill in your code below | |
# convert name to number using if/elif/else | |
# don't forget to return the result! | |
for id_,n in items.items(): | |
if n == name: | |
return id_ | |
return "Invalid Choice %s" % name | |
import random | |
def rpsls(name): | |
# fill in your code below | |
# convert name to player_number using name_to_number | |
player_number = name_to_number(name) | |
# compute random guess for comp_number using random.randrange() | |
comp_number = random.randrange(4) | |
# compute difference of player_number and comp_number modulo five | |
difference = (player_number - comp_number) % 5 | |
# use if/elif/else to determine winner | |
if difference in (1,2): | |
winner = "Player" | |
elif difference in (3,4): | |
winner = "Computer" | |
elif difference == 0: | |
winner = "Noone" | |
else: | |
winner = "Shouldn't happen" | |
# convert comp_number to name using number_to_name | |
comp_name = number_to_name(comp_number) | |
# print results | |
print "Player chooses %s" % name | |
print "Computer chooses %s"% comp_name | |
print "%s wins!" % winner | |
# test your code | |
rpsls("rock") | |
rpsls("Spock") | |
rpsls("paper") | |
rpsls("lizard") | |
rpsls("scissors") | |
# always remember to check your completed program against the grading rubric | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment