具体来说,我正在执行UDEMY 100天编码中的hangman挑战。我似乎不知道如何通过达到"6“生命中的"0”来检查用户是否丢失了。当我使用此代码时,它会在for循环中的每个与猜测不匹配的实例中从“生命”中减去1:
lives = 6
while not end_of_game:
guess = input("Guess a letter: ").lower()
for position in range(word_length):
letter = chosen_word[position]
if letter == guess:
display[position] = letter
elif letter != guess:
lives -= 1
if lives == 0:
end_of_game = True
print(f"{' '.join(display)}")发布于 2022-08-29 00:43:26
我只是对你的代码做了些替身检查。在纠正缩进之后,我在您的代码中发现的主要问题是,即使找到了一个猜测的字母并更新了显示位置,您的"for“循环仍然会根据单词中的其余字母检查猜测的字母。这样,即使有一个很好的猜测,生命也会减少。
我认为您希望您的代码更类似于下面的代码片段:
lives = 6
while not end_of_game:
guess = input("Guess a letter: ").lower()
found_letter = False # Additional test variable
for position in range(word_length):
letter = chosen_word[position]
if letter == guess:
display[position] = letter
found_letter = True
if found_letter == False: # Do the test for good/bad guess here
lives -= 1
if lives == 0:
end_of_game = True
break
print(f"{' '.join(display)}")附加的真/假变量"found_letter“将指示是否应该减少生命计数,并且测试将在检查完整个单词的猜测字母后进行。
试试看。
https://stackoverflow.com/questions/73523049
复制相似问题