英文:
Reduce lives by 1 every wrong guess
问题
It seems like you want assistance with your Python code. To clarify, you want to decrement your "lives" variable only when the user makes a wrong guess, but it's currently decrementing with every input. You can modify your code like this:
import random
word_list = ["ardvark", "baboon", "camel"]
random_word = random.choice(word_list)
print(random_word)
display = ["_" for _ in random_word]
lives = 6
guess = ''
while "_" in display and lives > 0:
guess = input("Guess a letter: ").lower()
found = False # Add a flag to track if the guess is correct
for i in range(len(random_word)):
if random_word[i] == guess:
display[i] = random_word[i]
found = True # Set the flag to True for correct guesses
if not found:
lives -= 1
print(" ".join(display))
if "_" not in display:
print("Congratulations! You guessed the word.")
else:
print("Out of lives. The word was:", random_word)
This modified code should decrement "lives" only when the user makes a wrong guess, not with every input.
英文:
import random
# Make a list of different animal or anything.
word_list = ["ardvark", "baboon", "camel"]
# Use the random module to randomly pick an animal in the list.
random_word = random.choice(word_list)
# print the choosen word.
print(random_word)
display = ["_" for _ in random_word]
lives = 6
# empty guess.
guess = ''
# empty guess list.
# while loop in display.
while "_" in display:
# ask the user to guess a letter from the chosen word.
guess = input("Guess a letter: ").lower()
# get the range and the len of the chosen word.
for i in range(len(random_word)):
# if the letter(guess) is equal to one of the letter in the chosen word.
if random_word[i] == guess:
display[i] = random_word[i]
if random_word != guess:
lives -= 1
print(lives)
# print the display with the right letter.
print(" ".join(display))
I was expecting that with every wrong answer, my life would go down by 1. But instead of every right or wrong answer, my life goes down by one. I don't know what I'm doing wrong.
RESULTS:
baboon
Guess a letter: b
5
b _ b _ _ _
Guess a letter: r
4
b _ b _ _ _
Guess a letter:
答案1
得分: 1
这是减少一条生命,因为您输入的 b
不等于单词 baboon
,就像您在这一行中所说的 if random_word != guess:
我的假设是,您的意思是只有在猜测的单词/字母不在 random_word
中时才减少一生。如果这是正确的,您可以通过更改以下内容来获得预期的行为:
if guess not in random_word:
lives -= 1
这样我们就得到了这个输出:
骆驼
猜一个字母:c
c _ _ _ _
猜一个字母:b
5
c _ _ _ _
猜一个字母:a
c a _ _ _
猜一个字母:d
4
c a _ _ _
...
英文:
It's subtracting a life because your input of b
is not equal to the word baboon
, like you said in the line if random_word != guess:
My assumption is that you meant it to only subtract a life only if the guessed word/letter isn't in the random_word
. If this is correct, you can get the expected behavior by changing:
if random_word != guess:
lives -= 1
to:
if guess not in random_word:
lives -= 1
Which gives us this output:
camel
Guess a letter: c
c _ _ _ _
Guess a letter: b
5
c _ _ _ _
Guess a letter: a
c a _ _ _
Guess a letter: d
4
c a _ _ _
...
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论