Python实现成语接龙

如图:

详细代码实现:

python 复制代码
# coding:utf-8
import string
import pypinyin
import sys
import random

print("初始化中,请稍等......")


def main():
    f2 = open('./idiom.txt', 'r', encoding='utf-8')
    f = f2.read()  # 一次性读取完成

    new3_list = f.split("\n")

    robot = ["哀鸿遍野", "言外之意", "口干舌燥", "地久天长", "不期而遇", "坐享其成", "知书达理", "遮天蔽日", "张灯结彩",
             "再接再厉", "月明星稀", "缘木求鱼", "永无止境", "引人入胜", "易如反掌", "烟消云散", "形影不离", "相依为命",
             "万马齐喑", "脱口而出", "天下太平", "手下留情", "杀气腾腾", "日月如梭", "全力以赴", "倾盆大雨", "奇形怪状",
             "朴实无华", "呕心沥血", "名不虚传", "眉开眼笑", "马到成功", "良苦用心", "聚沙成塔", "尽心尽力", "豁然开朗",
             "和颜悦色", "骨肉相连", "恶语伤人", "得意门生", "大惊小怪", "层次分明", "半死不活"]

    for i in new3_list:
        randomvar = random.randint(0, 1)
        if randomvar == 0:
            robot.append(i)

    robotpy1 = []
    for k in robot:
        robotpy1.append(pypinyin.pinyin(k, style=pypinyin.NORMAL)[0])

    py2_l = []

    py2 = ""
    for i2 in new3_list:
        for i in pypinyin.pinyin(str(i2), style=pypinyin.NORMAL):
            i = str(i).replace("[", '')
            i = str(i).replace("]", '')
            i = str(i).replace("'", '')
            py2 = py2 + str(i)
        py2_l.append(py2)

    def ifcy():
        for i in new3_list:
            if i == da:
                return True
        return False

    upcy = ' '
    while True:
        js = False
        da = input("你:")
        py3 = pypinyin.pinyin(da, style=pypinyin.NORMAL)[0]
        py6 = pypinyin.pinyin(da, style=pypinyin.NORMAL)[len(pypinyin.pinyin(da, style=pypinyin.NORMAL)) - 1]
        upcy1 = pypinyin.pinyin(upcy, style=pypinyin.NORMAL)[len(pypinyin.pinyin(upcy, style=pypinyin.NORMAL)) - 1]
        py = ""
        for i in pypinyin.pinyin(da, style=pypinyin.NORMAL):
            i = str(i).replace("[", '')
            i = str(i).replace("]", '')
            i = str(i).replace("'", '')
            py = py + str(i)

        if ifcy():
            if not upcy == " ":
                if py3 == upcy1:
                    print("你接上了!!!")
                else:
                    print("你没有接上,所以输了!!!")
                    input("按回车退出!!!")
                    sys.exit()
            l = 0
            for py5 in robotpy1:
                if py5 == py6:
                    print("小土豆:" + robot[l])
                    upcy = robot[l]
                    js = True
                    break
                l = l + 1

        else:
            print("不是成语!!!")
            input("按回车退出!!!")
            sys.exit()

        if not js:
            print("我输了,不过我会学习的!!!")
            input("按回车退出!!!")
            sys.exit()


def trydef(max_attempts=3):  # 设置一个最大尝试次数
    if max_attempts == 0:
        print("达到最大尝试次数,退出程序。")
        return
    try:
        main()
    except Exception as e:
        print(f"发生异常:{e}")
        trydef(max_attempts-1)  # 减少尝试次数

trydef()

关注私信我!发送idiom.txt文件!!!

相关推荐
小灰灰搞电子几秒前
Rust可以取代C++么?
开发语言·c++·rust
齐鲁大虾2 分钟前
Windows 操作系统中 SQL Server 的版本要求
windows
我送炭你添花2 分钟前
Pelco KBD300A 模拟器:06+2.Pelco KBD300A 模拟器项目重构指南
python·重构·自动化·运维开发
Swizard4 分钟前
别再只会算直线距离了!用“马氏距离”揪出那个伪装的数据“卧底”
python·算法·ai
cat三三5 分钟前
java之异常
java·开发语言
站大爷IP6 分钟前
Python函数与模块化编程:局部变量与全局变量的深度解析
python
奇树谦7 分钟前
【Qt实战】实现图片缩放、平移与像素级查看功能
开发语言·qt
我命由我1234514 分钟前
Python Flask 开发问题:ImportError: cannot import name ‘Markup‘ from ‘flask‘
开发语言·后端·python·学习·flask·学习方法·python3.11
不惑_14 分钟前
Windows 安装 Docker 和 Docker Compose 完整教程
windows·docker·容器
wjs202417 分钟前
Go 语言指针
开发语言