编写一个程序,随机选择一个英文单词wbrd,然后让用户猜这个单词。用户每次可以猜一个字母,如果猜对了就在对应的位置上显示这个字母,如果猜错了就会失去一次机会,直到猜完整个单词或者机会用完为止
时间: 2024-05-15 13:18:00 浏览: 137
好的,我可以帮助您解决这个问题。以下是核心的 Python 代码:
```python
import random
# 定义词库(可以添加其他单词)
WORDS = ['apple', 'banana', 'orange', 'cat', 'dog', 'house']
# 从词库中随机选择单词
word = random.choice(WORDS)
# 初始化猜测的单词
guesses = '_' * len(word)
# 初始化总共的机会
max_guesses = 6
# 开始猜测
while max_guesses > 0 and guesses != word:
print('Guess the word:', ' '.join(guesses))
guess = input('Guess a letter: ').lower()
# 如果输入的字符已经在猜测的单词里面了,就跳过
if guess in guesses:
print('You have already guessed', guess)
continue
# 如果输入的字符在单词里面,替换对应的下划线
if guess in word:
new_guesses = ''
for i in range(len(word)):
if word[i] == guess:
new_guesses += guess
else:
new_guesses += guesses[i]
guesses = new_guesses
# 如果输入的字符不在单词里面,机会减一
else:
max_guesses -= 1
print('Wrong! You have', max_guesses, 'guesses left.')
# 游戏结果
if max_guesses <= 0:
print('Sorry, you lose! The word was', word)
else:
print('Congratulations! You win! The word was', word)
```
这个程序首先定义了一个词库,然后从词库中随机选择一个单词。接下来,用下划线初始化一个和单词长度相等的字符串,表示猜测的单词(每个字母对应一个下划线)。然后程序开始游戏的循环。每次循环,程序先输出当前猜测的单词(还没有猜对的字母用下划线代替),然后让用户输入一个字母。如果这个字母已经猜过了就提示用户重新输入,否则判断这个字母是否在单词里面。如果在单词里面就替换对应的下划线,如果不在就机会减一。循环继续直到猜对单词或者机会用完。最后输出游戏结果。
希望这个程序可以帮助你,如果你还有其他问题,请随时问我。
阅读全文