2016-09-20 2 views
0

Мне нужно написать простую функцию палача, которая принимает одну строку (слово, которое догадывается) и список букв (угадываемые буквы). Вот мой код до сих пор:Ошибка в программе hangman

def WordGuessed(Word, letters): 
    if letters == []: 
     return False 
    else: 
     for i in letters: 
      if i not in Word: 
       return False 
     else: 
      if i == letters[-1]: 
       return True 

код, как правило, работает, но я нахожу, что иногда печатает неправильный ответ. Например, если

WordGuessed('durian', ['h', 'a', 'c', 'd', 'i', 'm', 'n', 'r', 't', 'u']) 

Он печатает False, когда он должен печатать True. Может ли кто-нибудь увидеть, где мой код не так?

ответ

0

Вы возвращаетесь False, как только найдете угаданное письмо, которого нет в слове. В вашем примере первая буква не входит в это слово.

Это будет работать, если вместо того, чтобы вы Переберите Word и проверить каждую букву, если он находится в массиве letters:

def WordGuessed(Word, letters): 
    if letters == []: 
     return False 
    else: 
     for i in Word: 
      if i not in letters: 
       return False 
     else: 
      if i == Word[-1]: 
       return True 

# prints True 
print(WordGuessed('durian', ['h', 'a', 'c', 'd', 'i', 'm', 'n', 'r', 't', 'u'])) 

# prints False, missing 'u' 
print(WordGuessed('durian', ['h', 'a', 'c', 'd', 'i', 'm', 'n', 'r', 't'])) 
+0

спасибо, что работал! – EllaP

Смежные вопросы