下面是一个简单的猜词游戏的示例,包含了一个填充空白的方法:
import random
def guess_word(word):
# 根据输入的单词长度生成对应数量的下划线
blanks = ['_' for _ in range(len(word))]
# 将单词转换为列表,方便后续操作
word_list = list(word)
# 游戏循环,直到单词被猜出或猜错次数达到上限
max_guesses = 6
wrong_guesses = 0
guessed_letters = []
while True:
# 打印当前的下划线情况和猜错的字母
print(' '.join(blanks))
print(f"Wrong guesses: {' '.join(guessed_letters)}\n")
# 获取用户猜测的字母
guess = input("Guess a letter: ").lower()
# 如果用户猜测的字母已经猜过了,则提示重新猜测
if guess in guessed_letters:
print("You have already guessed that letter. Try again.\n")
continue
# 将用户猜测的字母加入已猜过的字母列表
guessed_letters.append(guess)
# 如果用户猜测的字母在单词中存在,则更新下划线列表
if guess in word_list:
for i in range(len(word_list)):
if word_list[i] == guess:
blanks[i] = guess
else:
# 猜错次数加1
wrong_guesses += 1
print("Wrong guess!\n")
# 判断游戏是否结束
if wrong_guesses == max_guesses:
print("You lost! The word was", word)
break
elif '_' not in blanks:
print("Congratulations! You guessed the word", word)
break
# 测试
words = ['apple', 'banana', 'orange', 'grape', 'watermelon']
random_word = random.choice(words)
guess_word(random_word)
运行以上代码,将会随机选择一个单词,然后开始猜词游戏。用户需要猜测单词中的字母,如果猜对则会显示在对应位置的下划线上,如果猜错则会显示错误次数和猜错的字母。用户最多有6次猜错的机会,如果猜错次数达到上限,则游戏结束并显示正确答案。如果用户成功猜出了单词,则显示恭喜信息。