【发布时间】:2018-03-23 20:24:02
【问题描述】:
我正在为一个学校项目做一个简单的游戏。这只是一个猜词游戏,我已经把大部分内容都记下来了,除非答案是错误的或完成的。到目前为止,这是我的代码。
guess = input('Guess a letter.')
blank_answer = list('_ _ _ _ _ _')
correct_answer ='banana'
correct_answer_final = 'b a n a n a'
guess_num = 4
index_num = 0
while guess_num > 0 and "".join(blank_answer) != correct_answer_final:
index_num = 0
for letter in correct_answer:
if letter == guess:
blank_answer[index_num] = letter
index_num += 2
if letter != guess:
guess_num -= 1
print('The Word so far is ' + "".join(blank_answer)
guess = input('Guess a letter. (You have ' + str(guess_num) + ' guesses remaining)')
if "".join(blank_answer) == correct_answer_final:
print('Good job ')
if guess_num == 0:
print('sorry you ran out of guesses')
我遇到的主要问题是,在第一次猜测之后,它会说“剩余 3 个”猜测,然后即使它们是正确的,在再猜测几次后它也会跳到 2。此外,它不会在正确猜测后立即跳出循环。如果正确,您必须再次输入正确的字母。这是在图形窗口中完成的,因此我已将所有导入的命令更改为默认 python 以使其更易于理解。任何帮助都会很棒!
【问题讨论】:
-
您的
if letter != guess语句只会与for letter in correct answer的最后一个字母进行比较
标签: python for-loop if-statement while-loop