很高兴今天早晨独立实现RPSLS小游戏,分享至此!
“RPSLS”游戏全称为Rock-paper-scissors-lizard-Spock,剪刀-石头-布的升级版。为了降低平手概率,增添了2个角色:Spock和蜥蜴君。
游戏规则是:每个都能赢2个输2个并与自己持平。在这里,剪刀能剪纸和蜥蜴;纸可以包住石头,驳斥Spock;石头击烂蜥蜴和剪刀;蜥蜴可以毒害Spock,吃纸;最后,Spock可以砸碎剪刀,使石头蒸发。
Mini-project描述:https://www.coursera.org/learn/interactive-python-1/supplement/ijRP5/mini-project-description
收获:
原来编程,最重要的是能静下心来分析。如果感到棘手,可以休息会儿,补足精力再战,就真的可以克服呢!
这是我的解答,若有更好的建议,欢迎指点~~
#RPSLS
import random
def name_to_number(name):
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:
print('Please input name among:"rock", "paper", "scissors", "lizard", or "Spock".')
def number_to_name(number):
if number in range(0,5):
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:
print('Please input number n the range 0 to 4.')
def rpsls(player_choice):
print()
print('Player chooses',player_choice)
player_number = name_to_number(player_choice)
comp_number = random.randrange(0,5)
comp_choice = number_to_name(comp_number)
print('Computer chooses',comp_choice)
if player_number - comp_number in range(-4,-2) or range(1,3):
print('Player wins!')
elif player_number - comp_number in range(-2,0) or range(3,5):
print('Computer wins!')
elif player_number - comp_number == 0:
print('Tie!')
else:
print('Error!')
print('"Rock-paper-scissors-lizard-Spock" game Start!')
rpsls("rock")
rpsls("Spock")
rpsls("paper")
rpsls("lizard")
rpsls("scissors")