-3

so I created a Rock, Paper, Lizard, Spock game. And I can't seem to figure out how to do a loop to it, so I would like something like raw_input("Enter (Y or N) if you would like to play again") And I was also wondering how I would output the score? Thanks.

Here is the code:

import random
comp = random.randrange(5)+1

user = raw_input("Choose:\nRock\nPaper\nScissors\nLizard\nSpock\n")

if comp == 1:
    if user == "rock":
        print "Computer chooses ROCK, its a TIE."
    elif user == "rock" or "spock":
        print "Computer chooses ROCK, computer WINS."
    elif user == "sissors" or "lizard":
        print "Computer chooses ROCK, you WIN."
elif comp == 2:
    if user == "paper":
        print "Computer chooses PAPER, its a TIE."
    elif user == "lizard" or "sissors":
        print "Computer chooses PAPER, computer WINS."
    elif user == "rock" or "spock":
        print "Computer chooses PAPER, you WIN"
elif comp == 3:
    if user == "sissors":
        print "Computer chooses SISSORS, its a TIE."
    elif user == "spock" or "rock":
        print "Computer chooses SISSORS, computer WINS."
    elif user == "lizard" or "paper":
        print "Computer chooses SISSORS, you WIN."
elif comp == 4:
    if user == "lizard":
        print "Computer chooses LIZARD, its a TIE."
    elif user == "rock" or "spock":
        print "Computer chooses LIZARD, computer WINS."
    elif user == "sissors" or "lizard":
        print "Computer chooses LIZARD, you WIN."
elif comp == 5:
    if user == "spock":
        print "Computer chooses SPOCK, its a TIE."
    elif user == "paper" or "lizard":
        print "Computer chooses SPOCK, computer WINS."
    elif user == "rock" or "sissors":
        print "Computer chooses SPOCK, you WIN"
else:
    print "ERROR"
RedEye
  • 1
  • 2
  • Look up while loops – Luke K Apr 28 '17 at 16:37
  • Possible duplicate of [Python looping and program restart if true](http://stackoverflow.com/questions/31084020/python-looping-and-program-restart-if-true) – Prune Apr 28 '17 at 16:38
  • 2
    Not directly related to your problem, but `elif user == "rock" or "spock":` is not the right way of determining if a value matches either of two strings. Related reading: [Why does `a == b or c or d` always evaluate to True?](http://stackoverflow.com/q/20002503/953482) – Kevin Apr 28 '17 at 16:41
  • It still works fine for me, I've tried it. – RedEye Apr 28 '17 at 16:51
  • @RedEye oh really? `comp = 1` and type `lizard` in. Tell me what happens? – MooingRawr Apr 28 '17 at 16:59

1 Answers1

0

(Python2):

import random

while True:

    comp = random.randrange(5)+1

    user = raw_input("Choose:\nRock\nPaper\nScissors\nLizard\nSpock\n")

    if comp == 1:
        if user == "rock":
            print "Computer chooses ROCK, its a TIE."
        elif user == "rock" or "spock":
            print "Computer chooses ROCK, computer WINS."
        elif user == "sissors" or "lizard":
            print "Computer chooses ROCK, you WIN."
    elif comp == 2:
        if user == "paper":
            print "Computer chooses PAPER, its a TIE."
        elif user == "lizard" or "sissors":
            print "Computer chooses PAPER, computer WINS."
        elif user == "rock" or "spock":
            print "Computer chooses PAPER, you WIN"
    elif comp == 3:
        if user == "sissors":
            print "Computer chooses SISSORS, its a TIE."
        elif user == "spock" or "rock":
            print "Computer chooses SISSORS, computer WINS."
        elif user == "lizard" or "paper":
            print "Computer chooses SISSORS, you WIN."
    elif comp == 4:
        if user == "lizard":
            print "Computer chooses LIZARD, its a TIE."
        elif user == "rock" or "spock":
            print "Computer chooses LIZARD, computer WINS."
        elif user == "sissors" or "lizard":
            print "Computer chooses LIZARD, you WIN."
    elif comp == 5:
        if user == "spock":
            print "Computer chooses SPOCK, its a TIE."
        elif user == "paper" or "lizard":
            print "Computer chooses SPOCK, computer WINS."
        elif user == "rock" or "sissors":
            print "Computer chooses SPOCK, you WIN"
    else:
        print "ERROR"

    continue_input = raw_input('Enter (Y or N) if you would like to play again')
    if continue_input.lower() != 'y':
        break
mathewguest
  • 630
  • 5
  • 10
  • This solves the "looping to replay" part, but note that the program won't work because conditions like `user == "rock" or "spock"` will always evaluate to `True` (see Kevin's comment on the question). You mean `user == "rock" or user == "spock"`. – Thierry Lathuille Apr 28 '17 at 16:47