首页 > 编程语言 >【Python】Python 实现猜单词游戏——挑战你的智力和运气!

【Python】Python 实现猜单词游戏——挑战你的智力和运气!

时间:2023-10-18 16:03:35浏览次数:37  
标签:word 运气 Python clue 单词 secret guessed lives

在这里插入图片描述

前言

大家好!欢迎来到我们精心准备的文字游戏世界。今天,我将向大家介绍一款有趣而又考验智力的游戏——猜单词游戏。在游戏中,你将面临一个神秘的单词,你需要凭借自己的智慧和运气来猜测这个单词是什么。每猜错一次,你将失去一条生命线,当生命线用尽时,你将面临失败。但只要你成功猜对了整个单词,那么胜利就属于你!现在,让我们开始挑战吧!

学到什么?

在这里插入图片描述

  1. 使用random模块来随机选择元素。

    • 在这个代码中,使用random.choice()函数从一个含有多个单词的列表中随机选择一个单词作为神秘单词。
  2. 字符串操作和列表操作。

    • 利用字符串的乘法运算符可以将某个字符重复多次,例如heart_symbol * lives会生成一个由心形符号组成的字符串,表示剩余生命次数。
    • 将字符串转换为列表,可以使用list()函数,例如clue = list('?????'),将包含五个问号的字符串转换为一个包含五个元素的列表。
  3. 循环的使用。

    • 主循环使用了while语句,可以在满足条件(lives > 0)的情况下重复执行一段代码块。
    • while循环的终止条件是生命次数不大于0,即玩家没有生命次数剩余。
  4. 条件判断和分支控制。

    • 使用if语句进行条件判断,根据用户的猜测结果进行不同的操作。
    • 如果用户猜对了整个单词,则结束循环并显示胜利信息。
    • 如果用户猜对了某个字母,则更新显示猜测进度。
    • 如果用户猜错了字母,则扣除一次生命次数。
  5. 函数的定义和调用。

    • 定义了一个update_clue函数,用于根据用户猜对的字母更新显示猜测进度。
    • 在主循环中,通过调用update_clue函数来更新clue列表。
  6. 用户输入的获取。

    • 使用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 = False


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


while 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 - 1


if guessed_word_correctly:
    print('你赢了! 秘密单词是 ' + secret_word)
else:
    print('你输了! 秘密单词是 ' + secret_word)

结束语

经过精彩的文字游戏旅程,你成功挑战了猜单词游戏!无论输赢,都对 Python 的随机选择、字符串操作、条件判断等方面有了更深入的了解。希望这次的游戏能够让你愉快并且有所收获。继续探索编程的乐趣吧!

标签:word,运气,Python,clue,单词,secret,guessed,lives
From: https://blog.51cto.com/u_14522592/7918947

相关文章

  • ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?
    CentOS7pyenv安装Python3.10.13报错yuminstall-yopenssl-developenssl11-developenssl11-libCPPFLAGS="-I/usr/include/openssl11"LDFLAGS="-L/usr/lib64/openssl11-lssl-lcrypto"pyenvinstall-v3.10.13[root@Chatglm2-6B~]#pyenvversi......
  • Python Traceback:异常信息定位
    一、traceback模块简介traceback模块是Python标准库中的一个模块,提供了一些函数和类,用于获取和处理异常的跟踪信息。它可以帮助我们定位异常信息所在的代码位置,从而更好地调试和修复程序。 二、获取异常跟踪信息1.traceback.format_exc()函数在异常处理中,我们经常需要获取......
  • [914] In Python's datetime library, you can format dates using the strftime() me
    InPython'sdatetimelibrary,youcanformatdatesusingthestrftime()method.Thismethodallowsyoutocreateaformattedstringrepresentationofadatetimeobject,specifyingtheformatyouwant.Here'showyoucanformatadateusingstrft......
  • dhcpd.leases的Python解析程序
    #!/usr/local/bin/python3importdatetime,bisectdefparse_timestamp(raw_str):tokens=raw_str.split()iflen(tokens)==1:iftokens[0].lower()=='never':return'never';......
  • Python3,3分钟,带你了解PyTorch,原来科学计算库也不是很难嘛。
    1、引言小屌丝:鱼哥,最近忙啥嘞?小鱼:啥也没干。小屌丝:确定没干??小鱼:…这话到你嘴里,咋就变为了。小屌丝:也没有啊,我就是确认下,你干没干。小鱼:…能干啥,你想干啥?小屌丝:我想请教你个问题。小鱼:正儿八经的问题,是不?小屌丝:你就看我今天这身穿的,还能不正经?小鱼:穿新鞋走老路小屌丝:此话咋......
  • Python3, 33行代码搞了一个聊天机器人, 这下再也不怕没人说话了。
    Python制作聊天机器人1、引言2、实战2.1准备2.2介绍2.2.1NLTK2.2.2ChatterBot2.3安装2.4示例2.4.1创建聊天机器人2.4.2与用户交互3、总结1、引言小屌丝:鱼哥,看这段代码fromchatterbotimportChatBot#创建聊天机器人chatbot=ChatBot('MyBot')#加载语料库with......
  • Python3,6行代码,搞定网络测速神器,我直接卸载某60测速器。
    6行代码搞定网络测速器1、引言2、代码实战2.1介绍2.1.1定义2.1.2常用方法2.1.3功能2.2安装2.3示例2.3.1测试上传下载速度2.3.2测试延迟2.3.3自定义服务器测试2.3.4多连接测试2.3.5实战3、总结1、引言小屌丝:鱼哥,你知道speedtest这个库吗?小鱼:嗯,知道一点点,咋了?小屌丝:那......
  • Python保留字有哪些?分为几类?
    保留字也称为关键字,这些保留字都被赋予了特殊含义,不能把保留字作为函数、模块、变量、类和其他对象的名称来使用。那么Python保留字有哪些?分为几类?以下是具体内容介绍。Python语言保留字是指在Python编程语言中,被保留不可用于变量名或函数名的标识符。这些保留字具有特定......
  • 调用Python的openpyxl包对Excel表格进行美化
    Python中运用openpyxl包对Excel表格进行美化,包括字体样式调整、单元格对齐方式调整、单元格边框调整、单元格背景颜色调整、行高和列宽调整。使用的Python中openpyxl包的版本为3.0.5先看实际美化前后的效果对比详细的开发代码如下,代码当中对关键信息进行了说明。复制代码......
  • 软件测试|深入理解Python的encode()和decode()方法
    简介在Python中,字符串是不可变的序列对象,它由Unicode字符组成。当我们需要在字符串和字节之间进行转换时,Python提供了两个非常重要的方法:encode()和decode()。这两个方法允许我们在Unicode字符和字节之间进行相互转换,以便在处理文本和二进制数据时更加灵活。在本文中,我们将深入......