2016-09-20 9 views
0

1つの文字列(推測されている単語)と文字のリスト(推測される文字)を取り込む単純なハングマン関数を記述する必要があります。ここで は、これまでの私のコードです:ハングマンプログラムの不具合

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']) 

Trueを印刷する必要がある場合は、Falseを出力します。誰か私のコードが間違っているのを見ることができますか?

答えて

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