Macchiat0
Macchiat0

Reputation: 1

Program syntax error

I have started to work on this program that should play Rock, Paper Scissors against you. I have tried different models and this one is the closest one. The only problem is that it has a syntax error that I have no idea how to fix.

  #Macchiat0
  #3, 6, 2016

  #3. RPS is played between the computer and a single user.
  #The player is prompted for a throw  when 1 corresponds
  #to Rock, 2 to Paper, and 3 to Scissors.
  #A random number between 1 and 3 is generated for the computer throw.
  #The winner is determined based on the rules of Rock Paper and Scissors.

  #Program Menu

  import random
  end_game = True
  while end_game == True:
  print('1. Enter 1 for Rock ')
  print('2. Enter 2 for Paper ')
  print('3. Enter 3 for Scissors ')
  print('4. Quit')
  ans = int(input('What do you want to do?: '))
  if ans=="1":
        print("\n Enter 1 for Rock: ")
        if Player game = 1
        print('You win')
        if Player game = 2
        print('You loose')
        if Player game = 3
        print('You draw')
if ans =="2":
    print("\n Enter 2 for Paper: ")
        if Player game = 1
        print('You win')
        if Player game = 2
        print('You loose')
        if Player game = 3
        print('You draw')
if ans =="3":
    print("\n Enter 3 for Scissors: ")
        if Player game = 1
        print('You win')
        if Player game = 2
        print('You loose')
        if Player game = 3
        print('You draw')
elif ans=="4":
    print("\n Goodbye")
    break
else:
    print("\n Not Valid Choice Try Again")

Upvotes: 0

Views: 68

Answers (1)

Simo Erkinheimo
Simo Erkinheimo

Reputation: 1397

  • All lines before and including the first if are intented by 2 spaces. Remove them.
  • if Player game = 1 and all similar if -clauses should end with :
  • What are Player and game? Notation Player game = 1 makes no sense. Should you be comparing the answer against some random value? Also there should be == instead of =

Just few to notice. The real answer is to check the output when you run the script. It will tell you what's wrong.

Your question is not be best for SO and someone might hang me for doing this but... hell, it's friday! Here you go:

import random
end_game = False

def intToRPS(i):
    if i == 1:
        return 'Rock'
    elif i == 2:
        return 'Paper'
    elif i == 3:
        return 'Scissors'

    return ''

while end_game == False:
    print('1. Enter 1 for Rock ')
    print('2. Enter 2 for Paper ')
    print('3. Enter 3 for Scissors ')
    print('4. Quit')
    ans = int(input('What do you want to do?: '))
    comp = random.randint(1, 3)

    if ans > 0 and ans < 4:
        msg = 'You chose ' + intToRPS(ans) + ' and computer chose ' + intToRPS(comp)
        print(msg)

    if ans == comp:
        print('Draw')
    elif ans == 1 and comp == 2: #Rock vs Paper
        print('You loose')
    elif ans == 1 and comp == 3: #Rock vs Scissors
        print('You win')
    elif ans == 2 and comp == 1: #Paper vs Rock
        print('You win')
    elif ans == 2 and comp == 3: #Paper vs Scissors
        print('You loose')
    elif ans == 3 and comp == 1: #Scissors vs Rock
        print('You loose')
    elif ans == 3 and comp == 2: #Scissors vs Paper
        print('You win')
    elif ans=="4":
        print("\n Goodbye")
        end_game = True
        break
    else:
        print("\n Not Valid Choice Try Again")

Upvotes: 2

Related Questions