- # 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
- import random
- def number_to_name(number):
- # convert number to a name using if/elif/else
- # don't forget to return the result!
- 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"
- else:
- return "Wrong number!"
- def name_to_number(name):
- # convert name to number using if/elif/else
- # don't forget to return the result!
- 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
- else:
- return "Wrong name!"
- def rpsls(name):
- # fill in your code below
- # print the player's choice
- print "Player chooses " + name
- # 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(0, 5)
- # convert comp_number to name using number_to_name and print
- print "Computer chooses " + number_to_name(comp_number)
- # compute difference of player_number and comp_number modulo five
- diff = (player_number - comp_number) % 5
- # use if/elif/else to determine winner and print result
- if (diff == 1) or (diff == 2):
- print "Player wins!"
- elif (diff == 3) or (diff == 4):
- print "Computer wins!"
- else:
- print "Player and computer tie!"
- print ""
- # test
- rpsls("rock")
- rpsls("Spock")
- rpsls("paper")
- rpsls("lizard")
- rpsls("scissors")
- #该片段来自于http://www.codesnippet.cn/detail/010720134390.html
来源: http://www.codesnippet.cn/detail/010720134390.html