2011-05-20 12 views
1

我在我的hang子手程序中發現一個問題,發現超過2個雙字母詞。如何讓我的hang子手遊戲可以找到超過2個雙字母?

EX:如果我在我的猜測單詞表有aabcaaabc,那麼我想abc是不會告訴我,我得到的權利。但是,如果我在猜詞列表中有abc,並且我猜abc,那麼我就說得對。

這裏什麼是我的代碼是:

while keep_playing: 
    wordlist=["butterfly","tree","circumstances","jinrikisha"] 
    word=choice(wordlist) 
    word_len=len(word) 
    guesses=word_len * ['_'] 
    max_incorrect=7 
    alphabet="abcdefghijklmnopqrstuvxyz" 
    letters_tried="" 
    number_guesses=0 
    letters_correct=0 
    incorrect_guesses=0 
    print_game_rules(max_incorrect,word_len) 
    while (incorrect_guesses != max_incorrect) and (letters_correct != word_len): 
     clues() 
     letter=get_letter() 
     if len(letter)==1 and letter.isalpha(): 
      if letters_tried.find(letter) != -1: 
       print "You already picked", letter 
      else: 
       letters_tried = letters_tried + letter 
       first_index=word.find(letter) 
       if first_index == -1: 
        incorrect_guesses= incorrect_guesses +1 
        print "The",letter,"is not the mystery word." 
       else: 
        print"The",letter,"is in the mystery word." 
        letters_correct=letters_correct+1 
        for i in range(word_len): 
         if letter == word[i]: 
          guesses[i] = letter 
     else: 
      print "Please guess a single letter in the alphabet." 

見我的單詞表都怎麼了超​​過2雙字母,也不會告訴我,我猜對了,連我猜所有的信件。 我知道一旦單詞len字母超過2(如雙字母)是不會得到它的權利,但我該如何解決它?

回答

2

結束條件不正確,因爲letters_correct每次只增加一個(即使該信件發生多次)。

我會將[勝利]結束條件更改爲「guesses中沒有_時」,這意味着所有的_都被替換了,這意味着......(還請確保輸入短語「hello world 「在產生guesses時考慮到[[和類似])。

快樂的家庭工作。用於製造程序更加「模塊化」


加分點:一個微不足道的變化是使主循環(用勝利條件試驗)調用哪個提示輸入字母,然後更新顯示的方法。