這是我學習python的第一天,它具有相當數量的java背景。這個簡單的hang子手程序正在按預期工作,除了一個令人沮喪的問題。如果您的猜測不是單詞中的第一個字母,即使他們的字母在單詞的其他位置是正確的,您也會自動獲得「警示」。我已經指出了問題發生的地點和原因,但我似乎無法找到解決方案。如果任何人有任何提示,他們將不勝感激。試圖在Python中製作Hang子手,只使用python大約一天
#hangman
# 0
#\|/
# |
#/ \
print('Welcome to hangman 2000!')
word=input('Enter your word: ')
lengthOfWord=len(word)
guessed=list('_'*lengthOfWord)
hangman=''
# o \n\\|/\n | \n/ \\
while True:
wordActual=list(word)
for i in range(0,lengthOfWord):
print(guessed[i],end=' ')
print('\n'+hangman)
guess=input('Guess a letter: ')
for i in range(0,lengthOfWord):
if(wordActual[i]==guess):
guessed[i]=guess
for i in range(0,lengthOfWord):
if((wordActual[i]!=guess)==False):
print("test point")
break
#THE PROBLEM IS RIGHT HERE^, IF THE FIRST LETTER ISN'T YOUR FIRST GUESS IT WILL ALWAYS GO INTO THE HANGMAN MAKER\/
if(hangman==' o \n\\|/\n | \n/ \\'):
print('GAME OVER ')
input('Press Any Key to accept your failure...')
exit()
elif(hangman==''):
hangman+=' o \n'
break
elif(hangman==' o \n'):
hangman+='\\'
break
elif(hangman==' o \n\\'):
hangman+='|'
break
elif(hangman==' o \n\\|'):
hangman+='/\n '
break
elif(hangman==' o \n\\|/\n '):
hangman+='| \n'
break
elif(hangman==' o \n\\|/\n | \n'):
hangman+='/ '
break
elif(hangman==' o \n\\|/\n | \n/ '):
hangman+='\\'
break
if(wordActual==guessed):
print('Congradulations!')
input('Press Any Key to exit...')
break
就像在Java中一樣,Python使用break關鍵字來突破當前結構。在你的情況下,如果第一個字母不匹配,那麼你打破了。無論如何,你應該檢查每個字符。即去除中斷。 –
刪除該中斷不會解決問題,但它是相同的確切輸出。 –
對不起,我第一次只看了一下代碼。你爲什麼使用for循環?無論你打破還是退出,所以循環都沒有意義。您需要用支票替換循環;如果猜測不是在wordActual中,那麼刪除所有中斷 –