文章目录
- 前言
- 学到什么?
- 导入 random 模块
- 定义生命次数
- 定义神秘单词并进行随机选择
- 定义 clue(猜测进度) 列表,用问号 '?' 初始化
- 定义心形符号的 Unicode 编码
- 初始化 guessed_word_correctly 变量
- 定义更新猜测进度函数 update_clue
- 主循环,直到生命次数用尽或猜对了整个单词才结束
- 判断用户猜对了整个单词的情况
- 判断用户猜对了某个字母的情况
- 判断用户猜错了字母的情况
- 根据游戏结果判断胜负,并输出相应信息
- 完整代码
- 结束语
前言
大家好!欢迎来到我们精心准备的文字游戏世界。今天,我将向大家介绍一款有趣而又考验智力的游戏——猜单词游戏。在游戏中,你将面临一个神秘的单词,你需要凭借自己的智慧和运气来猜测这个单词是什么。每猜错一次,你将失去一条生命线,当生命线用尽时,你将面临失败。但只要你成功猜对了整个单词,那么胜利就属于你!现在,让我们开始挑战吧!
学到什么?
-
使用random模块来随机选择元素。
- 在这个代码中,使用
random.choice()
函数从一个含有多个单词的列表中随机选择一个单词作为神秘单词。
- 在这个代码中,使用
-
字符串操作和列表操作。
- 利用字符串的乘法运算符可以将某个字符重复多次,例如
heart_symbol * lives
会生成一个由心形符号组成的字符串,表示剩余生命次数。 - 将字符串转换为列表,可以使用
list()
函数,例如clue = list('?????')
,将包含五个问号的字符串转换为一个包含五个元素的列表。
- 利用字符串的乘法运算符可以将某个字符重复多次,例如
-
循环的使用。
- 主循环使用了
while
语句,可以在满足条件(lives > 0
)的情况下重复执行一段代码块。 while
循环的终止条件是生命次数不大于0,即玩家没有生命次数剩余。
- 主循环使用了
-
条件判断和分支控制。
- 使用
if
语句进行条件判断,根据用户的猜测结果进行不同的操作。 - 如果用户猜对了整个单词,则结束循环并显示胜利信息。
- 如果用户猜对了某个字母,则更新显示猜测进度。
- 如果用户猜错了字母,则扣除一次生命次数。
- 使用
-
函数的定义和调用。
- 定义了一个
update_clue
函数,用于根据用户猜对的字母更新显示猜测进度。 - 在主循环中,通过调用
update_clue
函数来更新clue
列表。
- 定义了一个
-
用户输入的获取。
- 使用
input()
函数获取用户的猜测,用户可以输入单个字母或者整个单词。
- 使用
导入 random 模块
import random
通过 import random
语句,导入了 Python 的 random 模块,使我们能够使用随机选择功能。
定义生命次数
lives = 3
通过 lives = 3
语句,初始化了一个变量 lives
,表示玩家的生命次数,初始值为 3。
定义神秘单词并进行随机选择
words = ['pizza', 'fairy', 'teeth', 'shirt', 'otter', 'plane']secret_word = random.choice(words)
通过 words = ['pizza', 'fairy', 'teeth', 'shirt', 'otter', 'plane']
定义了一个包含多个单词的列表。然后,使用 secret_word = random.choice(words)
随机选择其中一个单词作为神秘单词,将其保存在 secret_word
变量中。
定义 clue(猜测进度) 列表,用问号 ‘?’ 初始化
clue = list('?????')
通过 clue = list('?????')
将一个包含五个问号 '?????'
的字符串转换为一个包含五个元素的列表 clue
。
定义心形符号的 Unicode 编码
heart_symbol = u'\u2764'
通过 heart_symbol = u'\u2764'
定义了一个变量 heart_symbol
,表示心形符号的 Unicode 编码。这个符号将用于显示剩余生命次数。
初始化 guessed_word_correctly 变量
guessed_word_correctly = False
通过 guessed_word_correctly = False
初始化了一个布尔变量 guessed_word_correctly
,用于标记是否猜对了整个单词,默认值为 False。
定义更新猜测进度函数 update_clue
def update_clue(guessed_letter, secret_word, clue): index = 0 while index < len(secret_word): if guessed_letter == secret_word[index]: clue[index] = guessed_letter index = index + 1
通过 def update_clue(guessed_letter, secret_word, clue)
定义了一个名为 update_clue
的函数。该函数接受三个参数:guessed_letter
表示用户猜测的字母,secret_word
表示神秘单词,clue
表示猜测进度列表。在函数体内部,使用 while
循环和条件判断,根据用户猜测的字母更新猜测进度列表。
主循环,直到生命次数用尽或猜对了整个单词才结束
while lives > 0: print(words) print('剩余生命次数: ' + heart_symbol * lives) guess = input('猜测字母或者是整个单词: ')
通过 while lives > 0:
定义了一个主循环。在每次循环中,打印可选的单词列表,显示剩余生命次数,并通过 input()
函数获取用户的猜测。
判断用户猜对了整个单词的情况
if guess == secret_word: guessed_word_correctly = True break
通过 if guess == secret_word:
判断用户猜测是否等于神秘单词,如果相等,则将 guessed_word_correctly
设置为 True,并跳出循环。
判断用户猜对了某个字母的情况
if guess in secret_word: update_clue(guess, secret_word, clue)
通过 if guess in secret_word:
判断用户猜测是否在神秘单词中存在。如果存在,则调用 update_clue
函数,更新猜测进度列表。
判断用户猜错了字母的情况
else: print('错误。你丢了一条命\n') lives = lives - 1
如果用户猜测既不是整个单词又不是某个字母,则输出错误信息,并扣除一次生命次数。
根据游戏结果判断胜负,并输出相应信息
if guessed_word_correctly: print('你赢了! 秘密单词是 ' + secret_word)else: print('你输了! 秘密单词是 ' + secret_word)
通过
if guessed_word_correctly:
判断玩家是否猜对了整个单词,如果是,则输出胜利信息。否则,输出失败信息,同时显示正确的神秘单词。
完整代码
import random# 生命次数lives = 3# 神秘单词, 随机选择words = ['pizza', 'fairy', 'teeth', 'shirt', 'otter', 'plane']secret_word = random.choice(words)# print(secret_word)clue = list('?????')heart_symbol = u'\u2764'guessed_word_correctly = Falsedef update_clue(guessed_letter, secret_word, clue): index = 0 while index < len(secret_word): if guessed_letter == secret_word[index]: clue[index] = guessed_letter index = index + 1while lives > 0: print(words) print('剩余生命次数: ' + heart_symbol * lives) guess = input('猜测字母或者是整个单词: ') if guess == secret_word: guessed_word_correctly = True break if guess in secret_word: update_clue(guess, secret_word, clue) else: print('错误。你丢了一条命\n') lives = lives - 1if guessed_word_correctly: print('你赢了! 秘密单词是 ' + secret_word)else: print('你输了! 秘密单词是 ' + secret_word)
结束语
经过精彩的文字游戏旅程,你成功挑战了猜单词游戏!无论输赢,都对 Python 的随机选择、字符串操作、条件判断等方面有了更深入的了解。希望这次的游戏能够让你愉快并且有所收获。继续探索编程的乐趣吧!
来源地址:https://blog.csdn.net/qq_33681891/article/details/132077256