2016-11-11 7 views
0

私はhangmanプログラムの空白に正しい推測を入れる関数を得ようとしていますが、それは正しいか間違っているかに関係なく、単語を徐々に明らかにしています。どこが間違っていますか?私のハングマンプログラムで何がうまくいかないのですか?

コード:

while lettersrevealed!=word: 
    guess=getGuess(lettersrevealed) 
    for i in range(len(word)): 
     if guess in word: 
      blanks = blanks[:i] + word[i] + blanks[i+1:] 
      print(blanks) 

例: (秘密の言葉はアナグマです)

Guess a letter: 
a 
b***** 
ba**** 
bad*** 
badg** 
badge* 
badger 
Guess a letter: 
OR: 
Guess a letter: 
h 
b***** 
ba**** 
bad*** 
badg** 
badge* 
badger 
Guess a letter: 
+0

「推測」の値は何ですか?私はそれがあなたがそれが含むと思うものを含んでいないと思います。あなたの最初の例のように、「badger」の中で「a」が「word」のすべての単一の文字に当てはまります - もしguess == word [i]ならもっと良いでしょう。 –

答えて

0

問題は、おそらくこのような何かをしたい、forループ

for i in range(len(word)): # This will run 6 times for "badger" | 0, 1, .., 5 
    if guess in word: 
# blanks == ****** then gradually gets the next letter added replacing a * 
     blanks = blanks[:i] + word[i] + blanks[i+1:] 
     print(blanks) 

です。

だから、このような手紙を求めるループがあります。

guessed = set() 
word = 'badger' 
while True: 
    guess = input("Guess a letter") 
    guessed.add(guess) 
    blanks = convert_to_blanks(word, guessed) 
    print(blanks) 
    if blanks == word: 
     break 
関連する問題