我創建了一個有一個bug的Hang子手遊戲:如果您猜兩次相同的字母,它會中斷。我已經創建了每個字母表的字母列表,當玩家猜測該字母時,它將從列表中移除,顯示可供猜測的剩餘字符。這是通過.remove方法完成的,如果角色已經從先前的猜測中移除,該方法將會中斷。正在掃描一個列表 - IndexError:列表索引超出範圍
我試圖將此方法嵌套在for循環中,該循環將掃描字母表列表並檢查用戶對列表中匹配項的猜測並將其刪除。如果它已經被猜到了,那麼什麼都不會發生。我收到的錯誤是一個索引錯誤,推測是猜測的長度。我的疑惑來自事實,即當掃描hang子手字以匹配玩家的猜測時,我可以直接在下面完成這個完全相同的任務。請參閱下面的刪節代碼:
# Play begins and player guesses a letter
player_word = ['_ '] * len(cpu_word)
player_word2 = ['_'] * len(cpu_word)
alphabet = ['a','b',etc.]
print 'You have 10 guesses left'
# Determines if the guess is correct
for count in range(10)[::-1]:
guess = raw_input(str('Guess a letter: '))
# This is the previous method that creates a bug:/
# alphabet.remove(guess)
for e in xrange(len(alphabet)):
if alphabet[e] == guess:
alphabet.remove(guess)
for i in xrange(len(cpu_word)):
if cpu_word[i] == guess:
player_word [i] = cpu_word [i]
print 'Correct!'
我有兩個問題。首先是有人可以向我解釋這個錯誤,特別是爲什麼它可以掃描hang子手字,但不適用於掃描列表。
其次,任何人都可以提供這個問題的解決方案。
我是新來編碼,所以任何信息非常感謝!
感謝
感謝蒙克豪森,這是我尋找的簡單解決方案! – Chris