2016-11-23 8 views
-2

ich eine Python 3.5.2 Henkers Code haben:Henkers bekommt nur Anfangsbuchstaben des Wortes

def hangman(): 
 
    wrongnums =[] 
 
    print("what is the word to be guessed?") 
 
    global guessnum 
 
    guessnum=input('>') 
 
    print("how many chances?") 
 
    global chances 
 
    chances=int(input('>')) 
 
    print("game in beginning") 
 
    global blanks 
 
    blanks = '_ ' * len(guessnum) 
 
    print() 
 
    print(blanks) 
 
    guessing() 
 

 
def guessing(): 
 
    global chances 
 
    print("guess a letter") 
 
    guess=input('>') 
 
    for letters in guessnum: 
 
     if guess == letters: 
 
      letterIndex = guessnum.index(guess) 
 
      global newBlanks 
 
      newBlanks = blanks[:letterIndex*2] + guess + blanks[letterIndex*2+1:] 
 
      print ("Guess is correct!") 
 
      check() 
 
     
 
     elif guess != letters: 
 
      chances -=1 
 
      print ("Guess is wrong! ", chances, " more failed attempts allowed.") 
 
      guessing() 
 
      
 
def check():  
 
    print() 
 
    print("Word: ",newBlanks) 
 
    guessing()

Wenn ich das Wort zu erraten, zum Beispiel "Auto", "c" ist in Ordnung und es sagt richtig. Aber für "a" und "r" heißt es falsch. Warum ist das? Hier ist das Ergebnis: Outcome

Antwort

1

Sie sind nicht die vermutete Brief gegen das Wort überprüft, Sie sind gegen jeden einzelnen Buchstaben des Wortes Überprüfung aufgrund der for-Schleife, so dass es gegen die erste prüft, denkt seine nicht Wicht und Antworten bevor es mit dem Rest überprüfen kann. Versuchen Sie dies:

def hangman(): 
    wrongnums =[] 
    print("what is the word to be guessed?") 
    global guessnum 
    guessnum=input('>') 
    print("how many chances?") 
    global chances 
    chances=int(input('>')) 
    print("game in beginning") 
    global blanks 
    blanks = '_ ' * len(guessnum) 
    print() 
    print(blanks) 
    guessing() 

def guessing(): 
    global chances 
    print("guess a letter") 
    guess=input('>') 
    if guess in guessnum: 
     letterIndex = guessnum.index(guess) 
     global newBlanks 
     newBlanks = blanks[:letterIndex*2] + guess + blanks[letterIndex*2+1:] 
     print ("Guess is correct!") 
     check() 

    else: 
     chances -=1 
     print ("Guess is wrong! ", chances, " more failed attempts allowed.") 
     guessing() 

def check():  
    print() 
    print("Word: ",newBlanks) 
    guessing() 
+0

Aha danke für das, ich sehe jetzt. Ich bin ziemlich neu und das hat mir sehr geholfen –

Verwandte Themen