2016-09-29 2 views
1
#RoShamBo 
import random 
count=0 
while count<2 and count> -2: 
    compnum=random.randint(0,2) 
    usernum=int(input("Scissor(0), Rock(1), Paper(2)")) 
    if compnum==0: 
     if usernum==0: 
      print("Draw") 
     elif usernum==1: 
      print("Win") 
      count=count+1 
     elif usernum==2: 
      print("Lose") 
      count=count-1 
    elif compnum==1: 
     if usernum==0: 
      print("Lose") 
      count=count-1 
     elif usernum==1: 
      print("Draw") 
     elif usernum==2: 
      print("Win") 
      count=count+1 
    elif compnum==2: 
     if usernum==0: 
      print("Win") 
      count=count+1 
     elif usernum==1: 
      print("Lose") 
      count=count-1 
     elif usernum==2: 
      print("Draw") 
if count>2: 
    print("You won more than 2 times") 
else: 
    print("The computer won more than 2 times") 

Die Ausgabe ist durcheinander - für eine Sache, wird es nicht den Benutzer gewinnen lassen. Außerdem werden die Zahlen nicht richtig berechnet. Dies war eine Laboraufgabe für eine Klasse in Einführung in Python, aber der Professor, glaube ich, schrieb den Code falsch. Hier ist ein Beispiel gebrochen Ausgabe:Rock, Papier, Schere lässt Benutzer nicht gewinnen

============== RESTART: C:/Users/FieryAssElsa/Desktop/Broken.py ============== 
    Scissor(0), Rock(1), Paper(2)2 
    Draw 
    Scissor(0), Rock(1), Paper(2)2 
    Win 
    Scissor(0), Rock(1), Paper(2)2 
    Draw 
    Scissor(0), Rock(1), Paper(2)2 
    Lose 
    Scissor(0), Rock(1), Paper(2)2 
    Win 
    Scissor(0), Rock(1), Paper(2)2 
    Win 
    The computer won more than 2 times 
+0

Können Sie bitte näher erläutern? –

+1

Sie werden * immer * sehen 'Der Computer hat mehr als 2 mal gewonnen 'weil die Schleife so lange dauert, bis' count' 2 oder -2 ist und dann die Bedingung erreicht. Nun, da "count" 2 oder -2 ist und 2 nicht größer als 2 oder -2 ist, geht es in den else Block. – Li357

Antwort

2

Sie können es versuchen, mit if count==2:

+2

Das ist korrekt, aber du solltest es wirklich ausarbeiten. –

+1

Eine Erklärung wäre nett. – Li357

+0

Aber ich versuche "mehr als" 2 Mal zu sagen. –

Verwandte Themen