Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # rock-Spock-paper-lizard-scissors game
- # Ode to Big Bang Theory television show
- # http://www.codeskulptor.org/#user2-LHdperqFop-0.py
- # Heidi A. Heffelfinger
- # October 16, 2012
- # Code is based on Rice University template
- # This program determines winner by equating strings:
- # "rock", "paper", "scissors", "lizard", "Spock" to numbers
- # as follows:
- #
- # 0 - rock
- # 1 - Spock
- # 2 - paper
- # 3 - lizard
- # 4 - scissors
- import random
- def number_to_name(number):
- '''(int) -> str
- Returns a string matching the corresponding number.
- Precondition: string must be 0, 1, 2, 3, or 4
- >>> number_to_name(0)
- 'rock'
- >>> number_to_name(2)
- 'paper'
- >>> number_to_name(4)
- 'scissors'
- '''
- if (number == 0):
- return 'rock'
- elif (number == 1):
- return 'Spock'
- elif (number == 2):
- return 'paper'
- elif (number == 3):
- return 'lizard'
- elif (number == 4):
- return 'scissors'
- def name_to_number(name):
- '''(str) -> int
- Returns an integer between 0 and 4 for given string, name.
- Precondition: name must be 'rock', 'Spock', 'paper', 'lizard', or 'scissors'
- >>> name_to_number('rock')
- 0
- >>> name_to_number('paper')
- 2
- >>> name_to_number('scissors')
- 4
- '''
- if (name == 'rock'):
- return 0
- elif (name == 'Spock'):
- return 1
- elif (name == 'paper'):
- return 2
- elif (name == 'lizard'):
- return 3
- elif (name == 'scissors'):
- return 4
- def rpsls(guess):
- '''(str) -> str
- Prints player's choice (guess), prints randomly generated computer choice, and
- returns and prints winner between player's choice and computer choice.
- rpsls("rock") ## with random number generation of 1
- >>>
- Player chooses rock
- Computer chooses Spock
- Computer wins!
- rpsls("scissors") ## with random number generation of 4
- >>>
- Player chooses scissors
- Computer chooses scissors
- Player and Computer tie.
- rpsls("lizard") ## with random number generation of 2
- >>>
- Player chooses lizard
- Computer chooses paper
- Player wins!
- '''
- player_number = name_to_number(guess) #converts players guess to number
- comp_number = random.randrange(0,5) #computes a random guess for computer
- win_value = (comp_number - player_number) % 5 #computes win_value
- if win_value == 0: # if difference is 0, both tie
- winner = "Player and Computer tie."
- elif win_value >= 3: # if difference is 3 or 4, the Player wins
- winner = "Player wins!"
- else: # if difference is 1 or 2, the Computer wins
- winner = "Computer wins!"
- # print results
- print("Player chooses " + number_to_name(player_number))
- print("Computer chooses " + number_to_name(comp_number))
- print(winner)
- print()
- # test code
- rpsls("rock")
- rpsls("Spock")
- rpsls("paper")
- rpsls("lizard")
- rpsls("scissors")
Advertisement
Add Comment
Please, Sign In to add comment