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文件!!!

相关推荐
edisao2 分钟前
一。星舰到底改变了什么?
大数据·开发语言·人工智能·科技·php
阿豪只会阿巴6 分钟前
【多喝热水系列】从零开始的ROS2之旅——Day10 话题的订阅与发布1:Python
开发语言·c++·python·ubuntu·ros2
Frank Castle30 分钟前
【C语言】详解C语言字节打包:运算符优先级、按位或与字节序那些坑
c语言·开发语言
kk哥889931 分钟前
分享一些学习JavaSE的经验和技巧
java·开发语言
橙露43 分钟前
时间序列分析实战:用 Python 实现股票价格预测与风险评估
人工智能·python·机器学习
2501_940315261 小时前
【无标题】1.17给定一个数将其转换为任意一个进制数(用栈的方法)
开发语言·c++·算法
神云瑟瑟1 小时前
看langchain理解python中的链式调用
python·langchain·链式调用
栈与堆1 小时前
LeetCode 21 - 合并两个有序链表
java·数据结构·python·算法·leetcode·链表·rust
CCPC不拿奖不改名1 小时前
循环神经网络RNN:整数索引→稠密向量(嵌入层 / Embedding)详解
人工智能·python·rnn·深度学习·神经网络·自然语言处理·embedding
鹤入云霄1 小时前
基于Python的空气质量监测系统
python