我想獲得關於hang子手遊戲的一些幫助。我已經創建了這段代碼,並花了很多時間來完善它,但仍然無法獲得正確的輸出。非常感謝您的幫助!Hang子手遊戲代碼
word = choose_word(wordlist)
letters = 'abcdefghijklmnopqrstuvwxyz'
numLetters = len(word)
print numLetters
import re
def hangman(word, numLetters):
print 'Welcome to the game, Hangman!'
print 'I am thinking of a word that is', numLetters, 'letters long'
remainingGuesses = 8
print 'You have', remainingGuesses, 'guesses left.'
letters = 'abcdefghijklmnopqrstuvwxyz'
print 'Available letters:', letters
guess = raw_input("Please guess a letter:")
def filled_word(wordy, guessy):
emptyWord = ['_']*numLetters
if wordy.find(guessy) != -1:
position = [m.start() for m in re.finditer(guessy, wordy)]
for x in position:
emptyWord[x] = guessy
strWord = ''.join(emptyWord)
print 'Good guess =', strWord
else:
strWord = ''.join(emptyWord)
print 'Oops! That letter is not in my word:', strWord
filled_word(word, guess)
emptyWord = ['_']*numLetters
print 'emptyWord =', ['_']*numLetters
while '_' in emptyWord and remainingGuesses>0:
remainingGuesses -= 1
print 'You have', remainingGuesses, 'guesses left'
letters = 'abcdefghijklmnopqrstuvwxyz'
def unused_letters(letters):
letters = 'abcdefghijklmnopqrstuvwxyz'
unusedLetters = str(list(letters).remove(guess))
letters = unusedLetters
return unusedLetters
letters = unused_letters(letters)
print 'Available letters:', letters
guess = raw_input("Please guess a letter:")
if word.find(guess) != -1:
position = [m.start() for m in re.finditer(guess, word)]
for x in position:
emptyWord[x] = guess
strWord = ''.join(emptyWord)
print 'Good guess ='+strWord
emptyWord = list(strWord)
else:
strWord = ''.join(emptyWord)
print 'Oops! That letter is not in my word:', strWord
print hangman(word, numLetters)
print '___________'
print 'Congratulations, you won!'
所以問題是,當我運行此,代碼運行順利,直到從第二猜測起,我得到Available letters = None
,而不是特定的字母。
此外,我猜這是否出現在單詞中的字母不存儲。即在猜測1中,代碼返回單詞(例如)'d____',但在猜測2中,在猜測'e'時,代碼返回'e_'而不是'd_e__'。是因爲賦值變量嗎?局部和全局變量?我對此很困惑。
非常感謝您的幫助!非常感謝! :)
您是否嘗試過通過與PDB代碼步進/ IPDB時看到事情的變化? – dutt
對不起,我真的很新的python,你是什麼意思,通過使用pdb/ipdb來查看什麼時候改變? – inggumnator