编写一个Python程序,猜单词游戏:从26个小字母字符中随机取5个字符组成一个字符串,然后猜测此串直到成功;接着进行下一次猜测。退出由玩家控制。结束给出玩家平均猜测一个串所用的次数。 (如果改为从26个大、小字母和10个数字字符共62中随机取5个字符组成一个字符串,你能猜对吗?)
时间: 2023-06-09 22:02:44 浏览: 696
好的,我明白了您的要求。以下是Python程序:
```python
import random
def make_word():
letters = 'abcdefghijklmnopqrstuvwxyz'
word = ''
for i in range(5):
letter = random.choice(letters)
word += letter
return word
def guess_word():
guess = ''
attempts = 0
word = make_word()
print('The word has been generated. Start guessing!')
while guess != word:
guess = input('Enter your guess: ').lower()
if guess == 'exit':
break
attempts += 1
if len(guess) != 5:
print('The guess should be a 5-letter word.')
else:
correct_count = 0
for i in range(5):
if guess[i] == word[i]:
correct_count += 1
print('Correct letters:', correct_count)
return attempts
total_attempts = 0
games_played = 0
while True:
game_attempts = guess_word()
if game_attempts == 0:
print('Bye!')
break
total_attempts += game_attempts
games_played += 1
average_attempts = round(total_attempts / games_played, 2)
print('You guessed the word in', game_attempts, 'attempts.')
print('Average attempts per game:', average_attempts)
```
这个程序首先使用 `make_word()` 函数生成随机单词,然后使用 `guess_word()` 函数让玩家猜这个单词。在这个函数中,程序会检查玩家输入的猜测是否符合规定(必须是一个5个字母的单词),然后对比玩家的猜测和随机单词,给出猜测正确的字母数量。如果玩家输入了 "exit",游戏会结束。
主函数中的 `while` 循环会一直进行,直到玩家输入了 "exit"。每次游戏结束后,程序会计算平均猜测次数,并输出当前游戏的猜测次数和平均猜测次数。
如果从 26 个大小写字母和 10 个数字字符中共 62 个字符中随机取 5 个字符组成一个字符串,玩家制定的猜测策略不变,只是可能需要更多次的猜测才能猜中这个字符串。
阅读全文