2016-07-31 6 views
-5

Ich benutze Python. Aktuell neu dazu. Ich erstelle ein Stein Papier Schere Spiel mit Win Counter. Ich habe online eine Lösung gefunden, aber es funktioniert nicht für mich. Ich bin kurz davor, es zu beenden. Aber es gibt nur einen Fehler. Ich kann den Zähler nicht funktionieren lassen. Es zeigt keinen Gewinn Zählen am Ende des ProgrammsRock, Papier, Schere Tally Zähler Python

from random import randint 

print ("Rock ,Paper,Scissors game.") 

#Function to get computer input 
def generate(): 
    comlist = ["rock","paper","scissors"] 
    comans = comlist[randint(-1,2)] 
    if comans == "rock": 
     print ("Computer choose rock.") 
    elif comans == "paper" : 
     print ("Computer choose paper.") 
    elif comans == "scissors": 
     print ("Computer choose scissors.") 
    return comans 

#Function to get user input 
def user(): 
    userchoice = input ("Choose rock, paper , or scissors.") 
    while userchoice != 'rock' and userchoice != 'paper' and userchoice != 'scissors': 
     print ("Invalid input. Please enter again") 
     userchoice = input ("Choose rock, paper , or scissors.") 
    if userchoice == "rock": 
     print ("You choose rock.") 
     choice = userchoice 
    elif userchoice == "paper" : 
     print ("You choose paper.") 
     choice = userchoice 
    else: 
     userchoice == "scissors" 
     print ("You choose scissors.") 
     choice = userchoice 
    return choice 

#Function to determine winner 
def result(comans ,choice): 
    global result_set 
    if choice == comans: 
     print ("Tie") 
    elif choice == "rock": 
     if computer == "paper": 
      print ("You lose") 
     else : 
      print("You win") 
      result_set ='win' 
    elif choice == "paper": 
     if computer == "scissors": 
      print("You lose") 
     else: 
      print("You win") 
      result_set ='win' 
    elif choice == "scissors": 
     if computer == "rock": 
      print("You lose") 
     else: 
      print("You win") 
      result_set ='win' 

#Function to get win taly 
def wincounter (result,guess,computer): 
    if result_set == 'win': 
     win += 1 
    else: 
     pass 
    print (win) 

#Main program 
counter = 0 
win = 0 
diffulty = input(' Please enter diffulty.("1" for easy , "2" for medium, "3" for hard)') 
while diffulty != '1' and diffulty != '2' and diffulty != '3': 
    print ('Invalid input') 
    diffulty = input(' Please enter diffulty.("1" for easy , "2" for medium, "3" for hard)') 
if diffulty == '1': 
    print ("You have choose easy") 
    counter = 1 
    guess = user() 
    computer = generate() 
    result (computer, guess) 
    while counter < 3: 
     guess = user() 
     computer = generate() 
     result (computer, guess) 
     counter +=1 
if diffulty == '2': 
    print ("You have choose medium") 
    counter = 1 
    guess = user() 
    computer = generate() 
    result (computer, guess) 
    while counter < 5: 
     guess = user() 
     computer = generate() 
     result (computer, guess) 
     counter +=1 
if diffulty == '3': 
    print ("You have choose hard") 
    counter = 1 
    guess = user() 
    computer = generate() 
    result (computer, guess) 
    while counter < 10: 
     guess = user() 
     computer = generate() 
     result (computer, guess) 
     counter +=1 

Hier ist mein Code. Es ist etwas unordentlich. Sorry dafür seit als ich noch neu in Python bin. Danke für die Hilfe. Nach dem Ausführen.

Choose rock, paper , or scissors.rock 
You choose rock. 
Computer choose scissors. 
You win 
Choose rock, paper , or scissors.rock 
You choose rock. 
Computer choose rock. 
Tie 
Choose rock, paper , or scissors.rock 
You choose rock. 
Computer choose rock. 
Tie 

Es wird angenommen, die Ergebnisse nach dem Ende der letzten Runde zu zeigen.

+0

Was ist das Problem jetzt? Was funktioniert nicht? – Mehari

+0

Bitte zuerst erklären, was "nicht funktioniert" ist: Absturz? falsche Ergebnisse? ... Dann bitte nur zeigen (oder zumindest den relevanten Teil hervorheben), niemand liest wirklich gerne 100er Zeilen Code. Siehe [fragen] und [mcve]. – Julien

+0

Sie verwenden die Parameter nicht für Ihre Wincounter-Funktion – samgak

Antwort

0

Ich habe Ihren Code behoben. . .

from random import randint 

print ("Rock ,Paper,Scissors game.") 

#Function to get computer input 
def generate(): 
    comlist = ["rock","paper","scissors"] 
    comans = comlist[randint(-1,2)] 
    if comans == "rock": 
     print ("Computer choose rock.") 
    elif comans == "paper" : 
     print ("Computer choose paper.") 
    elif comans == "scissors": 
     print ("Computer choose scissors.") 
    return comans 

#Function to get user input 
def user(): 
    userchoice = input ("Choose rock, paper , or scissors.") 
    while userchoice != 'rock' and userchoice != 'paper' and userchoice != 'scissors': 
     print ("Invalid input. Please enter again") 
     userchoice = input ("Choose rock, paper , or scissors.") 
    if userchoice == "rock": 
     print ("You choose rock.") 
     choice = userchoice 
    elif userchoice == "paper" : 
     print ("You choose paper.") 
     choice = userchoice 
    else: 
     userchoice == "scissors" 
     print ("You choose scissors.") 
     choice = userchoice 
    return choice 

#Function to determine winner 
def result(comans ,choice): 
    result_set = '' 
    if choice == comans: 
     print ("Tie") 
    elif choice == "rock": 
     if computer == "paper": 
      print ("You lose") 
     else : 
      print("You win") 
      result_set ='win' 
    elif choice == "paper": 
     if computer == "scissors": 
      print("You lose") 
     else: 
      print("You win") 
      result_set ='win' 
    elif choice == "scissors": 
     if computer == "rock": 
      print("You lose") 
     else: 
      print("You win") 
      result_set ='win' 

    wincounter(result_set) 

#Function to get win taly 
def wincounter (result): 
    global win 
    if result == 'win': 
     win += 1 
    else: 
     pass 
    #print (win) 


def print_win_count(): 
    global win 
    print ('you have win '+ str(win) + ' times') 

#Main program 
counter = 0 
win = 0 
diffulty = input(' Please enter diffulty.("1" for easy , "2" for medium, "3" for hard)') 
while diffulty != '1' and diffulty != '2' and diffulty != '3': 
    print ('Invalid input') 
    diffulty = input(' Please enter diffulty.("1" for easy , "2" for medium, "3" for hard)') 
if diffulty == '1': 
    print ("You have choose easy") 
    counter = 1 
    guess = user() 
    computer = generate() 
    result (computer, guess) 
    while counter < 3: 
     guess = user() 
     computer = generate() 
     result (computer, guess) 
     counter +=1 
    print_win_count() 
if diffulty == '2': 
    print ("You have choose medium") 
    counter = 1 
    guess = user() 
    computer = generate() 
    result (computer, guess) 
    while counter < 5: 
     guess = user() 
     computer = generate() 
     result (computer, guess) 
     counter +=1 
    print_win_count() 
if diffulty == '3': 
    print ("You have choose hard") 
    counter = 1 
    guess = user() 
    computer = generate() 
    result (computer, guess) 
    while counter < 10: 
     guess = user() 
     computer = generate() 
     result (computer, guess) 
     counter +=1 
    print_win_count(0) 
+0

oh wow..danke viel –

Verwandte Themen