<p>在您的代码中,当播放机键入<code>hint</code>时,播放机会得到一个提示,但是程序会针对<code>correct</code>单词测试<code>'hint'</code>字符串。当然,<code>'hint'</code>不是正确的答案,所以你的程序告诉他们这是错误的。你知道吗</p>
<p>只是为了好玩,我对你的代码进行了一些优化,并改进了评分逻辑。:)</p>
<p>字母混乱<code>for</code>循环非常聪明,但是有一种更有效的方法,使用<code>random.shuffle</code>函数。此函数用于就地无序排列列表。因此,我们需要将所选单词转换成一个列表,将其洗牌,然后将列表连接回一个字符串。你知道吗</p>
<p>我还替换了你的逻辑提示。不必做一大堆<code>if</code>测试来查看哪个提示与当前单词匹配,只需将每个单词及其关联的提示存储为元组就简单多了。你知道吗</p>
<pre><code>import random
#Words that will be riddled, and their hints
all_words = (
('python', 'snake'),
('football', 'sport game'),
('facebook', 'social network'),
('photo', 'picture of something'),
)
#Randomly choose a word
word, hint = random.choice(all_words)
#Jumble up the letters of word
jumble = list(word)
random.shuffle(jumble)
jumble = ''.join(jumble)
print('Welcome to the game "Anagrams"\n')
print('You may ask for a hint by typing hint at the prompt')
print('Wrong guesses cost 2 points, hints cost 1 point\n')
print("Here's your anagram:", jumble)
score = 0
while True:
guess = input('\nTry to guess the original word: ')
if guess == word:
score += 5
print('You won! Congratulations!')
break
if guess == 'hint':
#Deduct a point for asking for a hint
score -= 1
print(hint)
continue
#Deduct 2 points for a wrong word
score -= 2
print('Sorry, you`re wrong :(')
print('Thank you for participating in game.')
print('Your score is', score)
input('\nPress Enter to end')
</code></pre>