Python 巨蟒石剪刀

Python 巨蟒石剪刀,python,python-3.x,Python,Python 3.x,我正在尝试编写一个Python程序,我很难获得分数。我把它写成了一个值返回函数,每次我运行程序时,它似乎都会跳过检索分数的步骤,除非我包含一个else语句,它会自动跳转else语句。 我将在下面附上完整的代码。 非常感谢你的帮助,我很感激! 这也是我第一次在这个论坛上发帖,如果我把事情搞砸了,我道歉 #constants Rock = 1 Paper = 2 Scissors = 3 #Define the main function def main(): #set control

我正在尝试编写一个Python程序,我很难获得分数。我把它写成了一个值返回函数,每次我运行程序时,它似乎都会跳过检索分数的步骤,除非我包含一个else语句,它会自动跳转else语句。 我将在下面附上完整的代码。 非常感谢你的帮助,我很感激! 这也是我第一次在这个论坛上发帖,如果我把事情搞砸了,我道歉

#constants
Rock = 1
Paper = 2
Scissors = 3

#Define the main function
def main():

    #set control loop
    keep_going = 'Y'


    #set counter to zero
    computer_wins = 0
    player_wins = 0
    tie_score = 0

    #call display message
    display_message()

    while keep_going == 'y' or keep_going == 'Y':

        play_game()


        #prompt user to keep going
        keep_going = input('would you like to play again? (Y for Yes): ')

    print('The computer won', computer_wins, 'times')
    print('The player won', player_wins, 'times')
    print('There were', tie_score, 'tie scores')

def play_game():

    #get random input
    computer = get_random()

    #get the players input
    play = get_play()

    #validate input
    if play == '1' or play == '2' or play == '3':
        play == True
    else:
        play == False
        print('Error: Invalid Entry')
        play = input('Please enter 1 for Rock, 2 for Paper, or 3 for Scissors: ')

    if play == computer:
        print('Tie Score, Please try again')
        tie_score += 1

    else:
        get_score(computer, play)

    print('The computer chose:', computer)
    print('The player chose: ', play)


#define display message
def display_message():
    print('Welcome to Rock Paper Scissors, a game of chance to see who will')
    print('outsmart the other. This game is Man VS Computer.')
    print('The program will select a random integer and then ask you for an integer')
    print('1 for Rock 2 for paper or 3 for Scissors. The program will then tell')
    print('you who won the game.')
    print('GOOD LUCK!')
    print
    print

def get_random():
    import random

    #generate random int
    computer = random.randint(1, 3)
    return computer


def get_play():
    #prompt user to enter an integer 1, 2, or 3
    play = input('Select 1 for Rock, 2 for Paper, or 3 for Scissors: ')
    return play

def get_score(computer, play):

    if computer == 1 and play == 2:
        score = 'player wins'
        print('Paper covers Rock, Player Wins')
        #player wins
        player_wins += 1

    elif computer == 1 and play == 3:
        score = 'computer wins'
        print('Scissors cut Paper, Computer Wins')
        #computer wins
        computer_wins += 1


    elif computer == 2 and play == 1:
        score = 'computer wins'
        print('Paper covers Rock, Computer Wins')
        #computer wins
        computer_wins += 1

    elif computer == 2 and play == 3:
        score = 'player wins'
        print('Scissors cut Paper, Player Wins')
        #player wins
        player_wins += 1


    elif computer == 3 and play == 1:
        score = 'player wins'
        print('Rock smashes Scissors, Player Wins')
        #player wins
        player_wins += 1

    elif computer == 3 and play == 2:
        score = 'computer wins'
        print('Scissors cut Paper, Computer Wins')
        #computer wins
        computer_wins += 1


#call main function
main()

快速浏览代码中的几个简短注释:

get\u score()
中,您可以添加一个else子句来处理发生的任何关系,而不必在
play\u game()中明确检查它。

import random
移动到文件顶部。导入通常位于文件的顶部。此外,无需在每次需要随机数时重新导入

不确定这是否是一个输入错误,因为
play
似乎总是包含一个整数,但是
play==True
play==False
内部
play\u game()
。如果要使
play
包含
True
False
,则需要使用一个等号,例如
play=True
。但是这似乎没有什么意义,因为你把
play
computer
进行比较,就好像它们是整数一样

另外,使用
get_score()
方法中的
score
变量,您想实现什么

啊,如果你让
get_score()
方法返回一些东西,这样你就能知道谁赢了比赛,这会很有帮助。您无法访问
get\u score()
方法中的
computer\u wins
player\u wins
,因为它们是在
main()中定义的。一种简单的方法是从
get\u score()
返回一个int。这里是一种相当C风格的处理方法(返回-1/0/1)。类似于(伪代码):


这有太多的错误,很难知道从哪里开始(但不要气馁)

首先,看起来您使用的是Python3(主要是使用
input
raw\u input
以及打印语句),这已经限制了您获得的帮助量。大多数人仍在使用Python 2.6或2.7。但是有了这些,就

解决您问题的主要剩余问题有:

第一:您使用字符串作为播放器输入(例如“1”、“2”、“3”),使用数字作为计算机选择(例如1、2、3)。因此,您需要对它们进行比较。换句话说,不是:

if computer == 1 and play == 2:
你需要说:

if computer == 1 and play == '2':
第二:您试图在另一个函数中引用一个函数的变量,这是行不通的。如果您希望您的
计算机\u wins
等变量是全局变量,则需要在全局范围内对其进行初始化,例如,在声明“#常量”之后和进入
main
之前。然后在任何使用它们的函数中,您必须说,例如,
global computer\u wins
,以表明它们是全局的,而不是本地的

一旦您解决了这些问题,它应该工作得更好一些,但是您仍然需要做大量的清理工作并继续工作


坚持下去,很快你就会觉得很自然。

我单独回答了你的问题,但只是为了好玩,这里有一个小的石头、布、剪刀游戏。这是针对Python2.x的,可能在Python3中不起作用,但它可能会对您或将来的人搜索此内容有所帮助

# "Rock, Paper, Scissors" demo for Python 2.x
# by Dan Kamins

import random

ROCK = 1
PAPER = 2
SCISSORS = 3

NAMES = { ROCK: 'Rock', PAPER: 'Paper', SCISSORS: 'Scissors' }
WHAT_BEATS_WHAT = { ROCK: SCISSORS, PAPER: ROCK, SCISSORS: PAPER }
WIN_ACTIONS = { ROCK: 'crushes', PAPER: 'smothers', SCISSORS: 'cuts' }

score_player = 0
score_computer = 0
score_ties = 0

def main():
    intro()
    while main_loop():
        pass
    summary()

def intro():
    print "Welcome to Rock, Paper, Scissors!"

def main_loop():
    player = get_player_input()
    computer = random.randint(1, 3)
    check_result(player, computer)
    return ask_play_again()

def check_result(player, computer):
    global score_player, score_computer, score_ties
    if player == computer:
        print "Tie!  Computer also chose {0}.".format(NAMES[computer])
        score_ties += 1
    else:
        if WHAT_BEATS_WHAT[player] == computer:
            print "Your massive {0} {1} the computer's {2}!".format(
                NAMES[player], WIN_ACTIONS[player], NAMES[computer])
            score_player += 1
        else:
            print "The computer's {0} {1} your pathetic {2}!".format(
                NAMES[computer], WIN_ACTIONS[computer], NAMES[player])
            score_computer += 1

def ask_play_again():
    again = raw_input("Enter Y to play again: ")
    return again in ('y', 'Y')

def get_player_input():
    while True:
        print
        player = raw_input("Enter 1 for Rock 2 for paper or 3 for Scissors: ")
        try:
            player = int(player)
            if player in (1,2,3):
                return player
        except ValueError:
            pass
        print "Please enter a number from 1 to 3."

def summary():
    global score_player, score_computer, score_ties
    print "Thanks for playing."
    print "Player won: ", score_player
    print "Computer won: ", score_computer
    print "Ties: ", score_ties

if __name__ == '__main__':
    main()

这段代码可能是您的一个很好的参考资料。:)
祝你好运
请注意,这是Py2.x代码

# Author: Niklas Rosenstein
# Created: 2011/10/23

import sys
import random

PAPER = 0
ROCK = 1
SCISSOR = 2

WIN = 10
LOSS = 11
TIE = 12

TABLE = {
    PAPER: 'Paper',
    ROCK: 'Rock',
    SCISSOR: 'Scissor',
}
if 'expand TABLE':
    # just for overvieability
    # expands the TABLE conveniently

    tableExpand = [
        (PAPER,('paper', 'p', '0')),
        (ROCK, ('rock', 'r', 'stone', '1')),
        (SCISSOR, ('scissor', 's', '2'))
    ]
    exp = None
    key = None
    for exp in tableExpand:
        for key in exp[1]:
            TABLE[key] = exp[0]
    del tableExpand, exp, key

class Game(object):

    wins = 0
    losses = 0
    ties = 0

    def evaluateInput(self, inp):
        # evaluate the input
        # raises ValueError if input is invalid

        # lowercase the string
        inp = inp.strip()
        inp = inp.lower()

        # comparison table
        try:
            return TABLE[inp]
        except KeyError:
            raise ValueError, 'Input is invalid.'

    def choose(self, choice):
        # make a choice and compare it with
        # the computers choice

        # check if the choice is correct
        if choice not in [ROCK, PAPER, SCISSOR]:
            raise ValueError, 'Expected Id of either ROCK, PAPER or SCISSOR'

        # generate a choice for the computer
        com = random.choice([ROCK, PAPER, SCISSOR])

        result = choice - com
        if result == 0:
            self.ties += 1
            return TIE, com
        elif result < 0:
            self.wins += 1
            return WIN, com
        else:
            self.losses += 1
            return LOSS, com

TEXT_CHOOSE             = 'Choose (or "quit" to quit):   '
TEXT_PLAYER_CHOOSE      = "You've choosen:              "
TEXT_COMPUTER_CHOOSE    = 'The computer choosed:        '
TEXT_CHOICE_INVALID     = 'You choice is invalid.\n'
TEXT_WIN                = "You've won this match."
TEXT_LOSS               = "You've lost this match."
TEXT_TIE                = "This match was tie."
TEXT_GOODBYE            = "Thanks for playing."
TEXT_WELCOME            = "Welcome to Rock-Paper-Scissor !\n" \
                          "This game is all about guessing. Try to choose the\n" \
                          "thing that beats the computers choice. Thereby, the\n" \
                          "following rules are importan:\n" \
                          "    Paper beats Rock.\n" \
                          "    Rock beats Scissor.\n" \
                          "    Scissor beats Paper.\n" \
                          "\n" \
                          "Valid inputs are:\n\n" \
                          "   | for Paper:          | p | paper   |   -   | 0 |\n" \
                          "   | for Rock:           | r | rock    | stone | 1 |\n" \
                          "   | for Scissor:        | s | scissor |   -   | 2 |\n" \
                          "   | To quit the game:   | q | quit    |   -   | - |\n" \
                          "\n" \
                          "Much fun whishes you: Niklas Rosenstein (2011)\n" \
                       + ("-" * 50) + "\n"

def printScores(g):
    print "Scores:"
    print "    Wins:     %s" % g.wins
    print "    Losses:   %s" % g.losses
    print "    Ties:     %s" % g.ties

def main():

    g = Game()

    # play the game ;-)
    print TEXT_WELCOME
    while True:
        inp = raw_input(TEXT_CHOOSE)

        if inp.lower() in ('q', 'quit'):
            break

        try:
            inp = g.evaluateInput(inp)
        except ValueError:
            print TEXT_CHOICE_INVALID
            continue

        t, com = g.choose(inp)

        inp = TABLE[inp]
        com = TABLE[com]

        print TEXT_PLAYER_CHOOSE, inp
        print TEXT_COMPUTER_CHOOSE, com
        print 
        if t == WIN:
            print inp, "beats", com + ".",
            print TEXT_WIN
        elif t == LOSS:
            print com, "beats", inp + ".",
            print TEXT_LOSS
        else:
            print inp, "euqals", com + ".",
            print TEXT_TIE
        print
        printScores(g)
        print "-" * 50
        print

    print TEXT_GOODBYE
    printScores(g)
    print

    print "Press any key to exit."
    sys.stdin.read(1)

main()
#作者:Niklas Rosenstein
#创建日期:2011/10/23
导入系统
随机输入
纸张=0
岩石=1
剪刀=2
赢=10
损失=11
平局=12
表={
报纸:"报纸",,
摇滚乐:“摇滚乐”,
剪刀:“剪刀”,
}
如果“扩展表”:
#只是为了超凡脱俗
#方便地展开表格
表扩展=[
(纸,('PAPER','p','0')),
(岩石,('ROCK','r','stone','1')),
(剪刀,('SCISSOR','s','2'))
]
exp=无
键=无
对于tableExpand中的exp:
对于输入exp[1]:
表[key]=exp[0]
del table扩展,exp,key
班级游戏(对象):
wins=0
损失=0
领带=0
def评估输入(自身,输入):
#评估输入
#如果输入无效,则引发ValueError
#将字符串小写
inp=inp.strip()
inp=inp.lower()
#对照表
尝试:
返回表[inp]
除KeyError外:
raise VALUE错误,“输入无效。”
def choose(self,choose):
#做一个选择并与之比较
#计算机选择
#检查选择是否正确
如果选择不在[石头、纸、剪刀]:
raise VALUE ERROR,“预期的岩石、纸张或剪刀Id”
#为计算机生成一个选项
com=random.choice([石头、纸、剪刀])
结果=选择-com
如果结果==0:
self.ties+=1
回程领带
elif结果<0:
self.wins+=1
返回WIN,com
其他:
自损耗+=1
退货损失
TEXT_CHOOSE='选择(或“退出”退出):'
TEXT\u PLAYER\u CHOOSE=“您已选择:”
TEXT\u COMPUTER\u CHOOSE='选择的计算机:'
TEXT\u CHOICE\u INVALID='您的选择无效。\n'
TEXT\u WIN=“你赢了这场比赛。”
TEXT\u LOSS=“你输掉了这场比赛。”
TEXT\u TIE=“这场比赛是平局。”
TEXT_bye=“感谢您的参与。”
TEXT\u WELCOME=“欢迎使用摇滚剪纸机!\n”\
“此游戏是关于猜测的。请尝试选择\n”\
“比com更棒的东西
# Author: Niklas Rosenstein
# Created: 2011/10/23

import sys
import random

PAPER = 0
ROCK = 1
SCISSOR = 2

WIN = 10
LOSS = 11
TIE = 12

TABLE = {
    PAPER: 'Paper',
    ROCK: 'Rock',
    SCISSOR: 'Scissor',
}
if 'expand TABLE':
    # just for overvieability
    # expands the TABLE conveniently

    tableExpand = [
        (PAPER,('paper', 'p', '0')),
        (ROCK, ('rock', 'r', 'stone', '1')),
        (SCISSOR, ('scissor', 's', '2'))
    ]
    exp = None
    key = None
    for exp in tableExpand:
        for key in exp[1]:
            TABLE[key] = exp[0]
    del tableExpand, exp, key

class Game(object):

    wins = 0
    losses = 0
    ties = 0

    def evaluateInput(self, inp):
        # evaluate the input
        # raises ValueError if input is invalid

        # lowercase the string
        inp = inp.strip()
        inp = inp.lower()

        # comparison table
        try:
            return TABLE[inp]
        except KeyError:
            raise ValueError, 'Input is invalid.'

    def choose(self, choice):
        # make a choice and compare it with
        # the computers choice

        # check if the choice is correct
        if choice not in [ROCK, PAPER, SCISSOR]:
            raise ValueError, 'Expected Id of either ROCK, PAPER or SCISSOR'

        # generate a choice for the computer
        com = random.choice([ROCK, PAPER, SCISSOR])

        result = choice - com
        if result == 0:
            self.ties += 1
            return TIE, com
        elif result < 0:
            self.wins += 1
            return WIN, com
        else:
            self.losses += 1
            return LOSS, com

TEXT_CHOOSE             = 'Choose (or "quit" to quit):   '
TEXT_PLAYER_CHOOSE      = "You've choosen:              "
TEXT_COMPUTER_CHOOSE    = 'The computer choosed:        '
TEXT_CHOICE_INVALID     = 'You choice is invalid.\n'
TEXT_WIN                = "You've won this match."
TEXT_LOSS               = "You've lost this match."
TEXT_TIE                = "This match was tie."
TEXT_GOODBYE            = "Thanks for playing."
TEXT_WELCOME            = "Welcome to Rock-Paper-Scissor !\n" \
                          "This game is all about guessing. Try to choose the\n" \
                          "thing that beats the computers choice. Thereby, the\n" \
                          "following rules are importan:\n" \
                          "    Paper beats Rock.\n" \
                          "    Rock beats Scissor.\n" \
                          "    Scissor beats Paper.\n" \
                          "\n" \
                          "Valid inputs are:\n\n" \
                          "   | for Paper:          | p | paper   |   -   | 0 |\n" \
                          "   | for Rock:           | r | rock    | stone | 1 |\n" \
                          "   | for Scissor:        | s | scissor |   -   | 2 |\n" \
                          "   | To quit the game:   | q | quit    |   -   | - |\n" \
                          "\n" \
                          "Much fun whishes you: Niklas Rosenstein (2011)\n" \
                       + ("-" * 50) + "\n"

def printScores(g):
    print "Scores:"
    print "    Wins:     %s" % g.wins
    print "    Losses:   %s" % g.losses
    print "    Ties:     %s" % g.ties

def main():

    g = Game()

    # play the game ;-)
    print TEXT_WELCOME
    while True:
        inp = raw_input(TEXT_CHOOSE)

        if inp.lower() in ('q', 'quit'):
            break

        try:
            inp = g.evaluateInput(inp)
        except ValueError:
            print TEXT_CHOICE_INVALID
            continue

        t, com = g.choose(inp)

        inp = TABLE[inp]
        com = TABLE[com]

        print TEXT_PLAYER_CHOOSE, inp
        print TEXT_COMPUTER_CHOOSE, com
        print 
        if t == WIN:
            print inp, "beats", com + ".",
            print TEXT_WIN
        elif t == LOSS:
            print com, "beats", inp + ".",
            print TEXT_LOSS
        else:
            print inp, "euqals", com + ".",
            print TEXT_TIE
        print
        printScores(g)
        print "-" * 50
        print

    print TEXT_GOODBYE
    printScores(g)
    print

    print "Press any key to exit."
    sys.stdin.read(1)

main()
import random;

print ('Game of chance 1=Rock,2=Paper,3=Scissor');
print ('Type 9 to exit');
while 1:
    z=random.randint(1,3);
    a=int(input('1=Rock,2=Paper,3=Scissor:--->'));
    if a==z:
        print ('Tie!!!');

    if a==1 and z==2:
        print ('Rock covers paper So You Win!!!');

    if a==2 and z==3:
        print ('Scissor cuts paper so you loose :(');

    if a==2 and z==1:
        print ('Rock covers paper so you loose :(');

    if a==3 and z==2:
        print ('Scissor cuts paper So You Win!!!');

    if a==9:
        break

print ('Thanks for playing the game')
try: input = raw_input
except NameError: input = input # py3k

import random
import sys
import textwrap
from collections import namedtuple

ROCK, PAPER, SCISSORS = ROCK_PAPER_SCISSORS = range(1, 4)
NAME = dict(zip(ROCK_PAPER_SCISSORS, "Rock Paper Scissors".split()))

Score = namedtuple('Score', 'win verb')
GAME_MATRIX = { # who wins and who does what
    (PAPER, ROCK):     Score(win=True, verb='covers'),
    (SCISSORS, PAPER): Score(win=True, verb='cut'),
    (ROCK, SCISSORS):  Score(win=True, verb='smashes'),
}
GAME_MATRIX.update(dict(((second, first), Score(not win, verb))
                   for (first,second), (win,verb) in GAME_MATRIX.items()))

def main():
    # keep scores: how many times computer, player win and number of ties
    scores = dict(zip("computer player tie".split(), [0]*3))

    display_welcome_message()

    # set control loop
    keep_going = 'Y'
    while keep_going.upper() == 'Y':
        try: play_game(scores)
        except Exception as e:
            print("Error: %s" % (e,))
            sys.exit(1)

        # prompt player to keep going
        keep_going = input('Would you like to play again? (Y for Yes): ')

    print('\nThe computer won {computer} times\n'
          'The player won {player} times\n'
          'There were {tie} tie scores'.format(**scores))

def play_game(scores):
    # get players choices for this round
    computer_choice = random.choice(ROCK_PAPER_SCISSORS)
    player_choice = get_player_input()

    # print choices
    for player, choice in [('computer', computer_choice),
                           ('player', player_choice)]:
        print('The {0} chose: {1} ({2})'.format(player, NAME[choice], choice))

    # update scores; print who wins
    if player_choice == computer_choice:
        scores['tie'] += 1
        print('Tie Score, Please try again')
    else:
        score = GAME_MATRIX[computer_choice, player_choice]
        if score.win: # computer wins
            scores['computer'] += 1
            template = '{first} {verb} {second}, Computer wins'
        else: # player wins
            scores['player'] += 1
            template = '{second} {verb} {first}, Player wins'
        print(template.format(first=NAME[computer_choice], 
                              second=NAME[player_choice], verb=score.verb))

def display_welcome_message():
    print(textwrap.fill(textwrap.dedent("""
        Welcome to Rock Paper Scissors, a game of chance to see who
        will outsmart the other. This game is Man VS Computer.  The
        program will select a random integer and then ask you to input
        %s for Rock %s for Paper or %s for Scissors. The program will
        then tell you who won the game. GOOD LUCK!
    """ % tuple(ROCK_PAPER_SCISSORS))))

def get_player_input(ntries=10):
    for _ in range(ntries):
        try: 
            choice = int(input('\nSelect %s for Rock, %s for Paper, or '
                '%s for Scissors: ' % tuple(ROCK_PAPER_SCISSORS)))
        except ValueError:
            pass
        else: 
            if choice in ROCK_PAPER_SCISSORS:
                return choice # success
        print('Error: your choice must be one of: %s' % (
                ', '.join(map(str, ROCK_PAPER_SCISSORS))))
    raise RuntimeError('failed to get player choice in %d tries' % ntries)

if __name__=="__main__":
    main()
import random
Rock = '1'
Paper = '2'
Scissors = '3'
print('Welcome to Rock, Paper Scissors! The game of all kids to decide on something. \nIn this game you will have to beat the computer once. \n(Psst if it\'s a draw the start the program again! ;D)\nSo how to play. Well, it\'s simple. Pick 1 for Rock, 2 for Paper and 3 for Scissors. \nSo Rock beats Scissors. Scissors cuts Paper and Paper covers Rock. Got it Lets play')
player=int(input('Please enter number 1 = Rock, 2 = Paper, 3 = Scissors: '))
if player<1 or player>3:
   player=int(input('Invalid number. Please enter number 1 = Rock, 2 = Paper, 3 = Scissors: '))
   if player<1 or player>3:
   print('Well, now you can\'t play this game because you are mucking around. Next time DON\'T!')
else:
   computer=random.randint(1, 3)
   print(player,computer)
   print('Remember Rock = 1, Paper = 2 and Scissors = 3')
   if player==1 and computer==1 or player==2 and computer==2 or player==3 and computer==3:
       print('It\'s a draw. =l Restart the game if you want to.')
   if player==1 and computer==2 or player==2 and computer==3 or player==3 and computer==1:
       print('Computer wins! You lose. Sorry. =(')
   if player==1 and computer==3 or player==2 and computer==1 or player==3 and computer==2:
       print('You have won. Well done. =D')
import random

def winner(p1, p2):
    actors = ['Paper', 'Scissors', 'Spock', 'Lizard', 'Rock']
    verbs = {'RoLi':'crushes', 'RoSc':'breaks', 'LiSp':'poisons',
             'LiPa':'eats', 'SpSc':'smashes', 'SpRo':'vaporizes', 
             'ScPa':'cut', 'ScLi':'decapitate', 'PaRo':'covers', 
             'PaSp':'disproves'}
    p1, p2 = actors.index(p1), actors.index(p2)
    winner, looser = [(p1, p2), (p1, p2), (p2, p1), (p1, p2), (p2, p1)][p1 - p2]
    return ' '.join([actors[winner],
                     verbs.get(actors[winner][0:2] + actors[looser][0:2],
                               'ties'),
                     actors[looser]])

more = True
while more:
    z=random.randint(0,4);
    a=int(input('1=Rock, 2=Paper, 3=Scissors, 4=Lizard, 5=Spock:--->'))-1;
    if a==z:
        print 'Tie\n';
    else:
        try:
            print winner(a,z) + '\n'
        except IndexError:
            more = False

print ('Thanks for playing the game')
1=Rock, 2=Paper, 3=Scissors, 4=Lizard, 5=Spock:--->1
Rock crushes Lizard

1=Rock, 2=Paper, 3=Scissors, 4=Lizard, 5=Spock:--->2
Paper covers Rock

1=Rock, 2=Paper, 3=Scissors, 4=Lizard, 5=Spock:--->3
Scissors tie Scissors

1=Rock, 2=Paper, 3=Scissors, 4=Lizard, 5=Spock:--->4
Lizard poisons Spock
# Imports
import random

# Constants
SELECTION = ["rock", "paper", "scissors"]
WIN = -1 # This is a dummy assignment: we will return this value later.
WIN_LOSE_DICT = {("rock", "paper"): False,
                 ("paper", "rock"): True,
                 ("paper", "scissors"): False,
                 ("scissors", "paper"): True,
                 ("scissors", "rock"): False,
                 ("rock", "scissors"): True}

# Variables
total_wins = 0

# Functions
def do_round():
    comp = random.choice(SELECTION)
    player = raw_input("Rock, paper, scissors, SHOOT! ").lower() # Set player response 
# to lowercase
    # Use input() on Python 3 and not raw_input()
    while player not in SELECTION:
        player = raw_input("Please choose either rock, paper, or scissors. ").lower()
    if player == comp:
        print "The computer chose %s: it is a tie." % comp
    else:
        result = WIN_LOSE_DICT[(player, comp)]
        if result: # If you want to be clear, do - if result == True:
            print "The computer chose %s: you win!" % comp
            return WIN
        else:
            print "The computer chose %s: you lose" % comp

# Main
if __name__ == "__main__":
    running = True
    while running:
        this_round = do_round()
        if this_round == WIN:
            total_wins += 1
        print "You won %s times so far." % total_wins
        continue_ = raw_input("Do you want to play another round (y/n) ?").lower()
        if continue_ == "n":
            continue
        else:
            running = False

print "Thank you for playing!"
import random
lst=['rock','scisor','paper']
player_score=0
comp_score=0
print('''Welcome to the game of our childhood Rock, Paper and scisor.
play this game against the computer.You must input the 
rock,paper,scisor .So let's start the game.''')

def new_game():       
    user_input=input("START A NEW GAME![Y/N]: \n")
    if user_input.upper()=="Y":
        global player_score
        player_score=0
        global comp_score
        comp_score=0
        RPS_game()
    else:
        print("Have a great day ahead!\n") 



def again():
    user_input=input("WANNA PLAY AGAIN![Y/N]: \n")
    if user_input.upper()=="Y":
        RPS_game()
    else:        
        print("YOUR FINAL SCORE: ",player_score)
        print("COMPUTER'S FINAL CORE: ",comp_score)
        if comp_score>player_score:
            print("OOPS!YOU LOOSE THE GAME\n")
            new_game()
                      
        elif comp_score<player_score:
            print("GREAT! YOU WON THE GAME\n")
            new_game()
        else:
            print("IT'S A DRAW!\n")   
            new_game()
   

def RPS_game():
    comp_move=random.choice(lst)

    player_move=input("Enter your move: ")
    if player_move=='rock' or player_move=='paper' or player_move=='scisor':

        print("Computers Move:",comp_move)
        if player_move=="rock":
            if comp_move=="scisor":          
                print("YOU WON!")
                global player_score
                player_score=player_score+1          
            elif comp_move=="paper":
                print("YOU lOOSE!")
                global comp_score
                comp_score=comp_score+1
            elif comp_move=="rock":
                print("TRY AGAIN!")
        elif player_move=="paper":
            if comp_move=="paper":
                print("TRY AGAIN!")
            elif comp_move=="scisor":
                print("YOU lOOSE!")
                comp_score=comp_score+1
            elif comp_move=="rock":
                print("YOU WON!")
                player_score+=1
        elif player_move=="scisor":
            if comp_move=="paper":
                print("YOU WON!")
                player_score+=1
            elif comp_move=="scisor":
                print("TRY AGAIN!")
            elif comp_move=="rock":
                print("YOU LOOSE!")
                comp_score=comp_score+1
        
        again()
    else:
        print('''Enter correct spellings !
as "rock,paper,scisor"''' )
        RPS_game()


RPS_game()