2016-06-03 5 views
0

Ich habe begonnen, an diesem Programm zu arbeiten, das Rock, Paper Scissors gegen Sie spielen sollte. Ich habe verschiedene Modelle ausprobiert und dieses ist das nächste. Das einzige Problem ist, dass es einen Syntaxfehler hat, von dem ich keine Ahnung habe, wie ich es beheben kann.Programm Syntax Fehler

#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") 
+0

Bitte posten Sie den Fehler, den Sie bekommen. Ohne es fällt es uns schwer zu sehen, was falsch ist. – marcelm

Antwort

2
  • Alle Linien vor und einschließlich der ersten wenn um 2 Felder intented werden. Entferne sie.
  • wenn Spieler Spiel = 1 und alle ähnlich, wenn -clauses mit enden sollte:
  • Was sind Spieler und Spiel? Notation Spieler Spiel = 1 macht keinen Sinn. Sollten Sie die Antwort mit einem zufälligen Wert vergleichen? Auch dort sollte == statt =
  • sein

Nur wenige zu bemerken. Die wirkliche Antwort ist, die Ausgabe zu überprüfen, wenn Sie das Skript ausführen. Es wird dir sagen, was los ist.

Ihre Frage ist nicht die beste für SO und jemand könnte mich dafür hängen, aber ... Hölle, es ist Freitag! Hier gehts:

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")