Interactive Programming in Python Mini Project 1

Rock-paper-scissors-lizard-Spock

第一周的作业,很简单,按要求根据给出的模板写一个类似剪刀-石头-布的游戏。

游戏规则:
rock,Spock,paper,lizard,scissors
按照这个顺序,每个能赢前面的两个,输给后面的两个,相同的则是平手。

Interactive Programming in Python Mini Project 1_第1张图片


程序要求:
以其中任意一个为参数运行程序,与电脑随机生成的对手对抗。


运行结果如下:

Interactive Programming in Python Mini Project 1_第2张图片

程序:

# Rock-paper-scissors-lizard-Spock

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:
        # return -1 for error
        return -1

def number_to_name(number):
    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 -1 for error
        return -1
           

def rpsls(player_choice): 
    
    # print a blank line 
    print
    
    # print out the player's choice
    print "Player chooses", player_choice
    
    player_number = name_to_number(player_choice)
    if player_number == -1 :
        print "Invalid player choice."
        return
    
    # compute random guess 
    comp_number = random.randrange(0,5)
    
    comp_choice = number_to_name(comp_number)
    if comp_choice == -1 :
        print "Invalid computer choice."
        return
    
    # print out computer's choice
    print "Computer chooses", comp_choice
    
    px = (comp_number - player_number) % 5
    
    # determine winner
    if px > 2:
        print "Player wins!"
    elif 0 < px < 3:
        print "Computer wins!"
    else:
        print "Player and computer tie!"
    
    
# test 
rpsls("rock")
rpsls("Spock")
rpsls("paper")
rpsls("lizard")
rpsls("scissors")







你可能感兴趣的:(Python,python,游戏,计算机,编程语言)