我在这里是全新的,据我所知,没有人问我具体的问题。如果有人有,请随时与我联系。无论如何,我正在通过一本Python书籍(创建自己的电脑游戏)的发明,并试图完成“Hang子手”一章。我遇到的问题是,每当我输入一封信时,无论这个信是否正确,程序仍然会吸引Hang子手。我目前正在运行Python 3,这本书说它使用。这里是我的代码:Hang子手程序故障
import random
HANGMANPICS = ['''
+---+
| |
|
|
|
|
===========''','''
+---+
| |
O |
|
|
|
===========''','''
+---+
| |
O |
| |
|
|
===========''','''
+---+
| |
O |
/| |
|
|
===========''','''
+---+
| |
O |
/|\ |
|
|
===========''','''
+---+
| |
O |
/|\ |
/ |
|
===========''','''
+---+
| |
O |
/|\ |
/\ |
|
===========''']
words = 'ant baboon badger bat bear beaver camel cat clam cobra cougar \
coyote crow deer dog donkey duck eagle ferret fox frog goat goose hawk \
lion lizard llama mole monkey moose mouse mule newt otter owl panda parrot \
pigeon python rabbit ram rat raven rhino salmon seal shark sheep skunk sloth \
snake spider stork swan tiger toad trout turkey turtle weasel whale wolf wombat\
zebra'.split()
def getRandomWord(wordList):
wordIndex = random.randint(0, len(wordList)- 1)
return wordList[wordIndex]
def displayBoard(HANGMANPICS, missedLetters, correctLetters, secretWord):
print(HANGMANPICS[len(missedLetters)])
print()
print('Missed letters:', end ='')
for letter in missedLetters:
print(letter, end = '')
print()
blanks = '_' * len(secretWord)
for i in range(len(secretWord)):
if secretWord[i] in correctLetters:
blanks = blanks[:i] + secretWord[i] + blanks[i+1:]
for letter in blanks:
print(letter, end = '')
print()
def getGuess(alreadyGuessed):
while True:
print('Guess a letter.')
guess = input()
guess = guess.lower()
if len(guess) != 1:
print('Please enter a single letter')
elif guess in alreadyGuessed:
print('You have already guessed that letter. Choose again.')
elif guess not in 'abcdefghijklmnopqrstuvwxyz':
print('Please enter a LETTER')
else:
return guess
def playAgain():
print('Do you want to play again?(yes or no)')
return input().lower().startswith('y')
print('H A N G M A N')
missedLetters = ''
correctLetters = ''
secretWord = getRandomWord(words)
gameIsDone = False
while True:
displayBoard(HANGMANPICS, missedLetters, correctLetters, secretWord)
guess = getGuess(missedLetters + correctLetters)
if guess in secretWord:
correctLetters = correctLetters + guess
foundAllLetters = True
for i in range(len(secretWord)):
if secretWord[i] not in correctLetters:
foundAllLetters = False
break
if foundAllLetters:
print('Yes! The secret word is "'+ secretWord +'"! You have won!')
gameIsDone = True
else:
missedLetters = missedLetters + guess
if len(missedLetters) == len(HANGMANPICS) -1:
displayBoard(HANGMANPICS, missedLetters, correctLetters, secretWord)
print('You have run out of guesses!\nAfter ' + str(len(missedLetters)) + ' missed guesses and ' + str(len(correctLetters))+ ' correct guesses, the word was "'+ secretWord +'"')
gameIsDone = True
if gameIsDone:
if playAgain():
missedLetters = ''
correctLetters = ''
gameIsDone = False
secretWord = getRandomWord(words)
else:
break
这本书的名字是什么? –
如果len(missedLetters)== len(HANGMANPICS)-1:'子句应该缩进到前面的条件的else:之下。 – tripleee
在这里倾销你的整个程序并不是真的可以接受。看到http://stackoverflow.com/help/mcve – tripleee