likes
comments
collection
share

🐉龙行龘龘,成语接龙,祝您龙年大吉🎇

作者站长头像
站长
· 阅读数 3

先祝大家新的一年:龙行龘龘,前程朤朤

龙年当然要玩成语接龙啦!这是龙的传承与创新(话说龙辰辰真的好可爱哇)

🐉龙行龘龘,成语接龙,祝您龙年大吉🎇

成语接龙游戏规则:

  • 必须是成语;
  • 除了第一个,后面每次接龙的成语必须是前一个成语的最后一个字相同的拼音。

管你听没听懂,玩就完了!🐉龙行龘龘,成语接龙,祝您龙年大吉🎇

1. 龙年主题界面

共有五个功能,设计的功能均与龙有关。

🐉龙行龘龘,成语接龙,祝您龙年大吉🎇

2. 龙腾虎跃--开始游戏

🐉龙行龘龘,成语接龙,祝您龙年大吉🎇

龙飞凤舞的逻辑代码如下:首先保证输入的必须是一个四字成语,且成语存在于我已经在网上下载好的一份成语文件中,如果输入正确,便由计算机开始第一个成语接龙,在guess函数中实现成语接龙的代码。

        if choice == "1":
            word = input("请输入一个成语:")
            if word == "exit":
                print("欢迎下次再来玩成语接龙")
                break
            while word != "exit":
                word = word.strip()  # 去掉空格
                word = word.encode('utf-8').decode('utf-8')  # 转换为统一的编码
                if not is_chinese(word):  # 检查是否为汉字
                    print("请输入汉字。")
                    word = input("请输入一个成语:")
                    continue
                if word not in [i[0] for i in data]:  # 检查是否存在于数据中
                    print("没有这个成语,请重新输入。")
                    word = input("请输入一个成语:")
                    continue
                if len(word) != 4:  # 检查是否是四字成语
                    print("请输入四字成语。")
                    word = input("请输入一个成语:")
                    continue
                score += 1
                print("是一个正确的成语呢,您真棒,分数加一")
                result = guess(word)
                print(result)
                print("*****请继续操作*****")
                print("1. 继续玩")
                print("2. 不玩了")
                choice1 = input("请输入您的选择:")
                if choice1 == '1':
                    word = input("请输入一个成语:")
                else:
                    print("下次再来哦")
                    break

guess函数代码如下:

首先由get_all_starts_with函数根据一个汉字的拼音,从数据中找出所有以该拼音开头的成语,并返回一个列表作为所有匹配的成语,当列表不为空的时候,在列表中随机选择一个成语返回即可,当列表为空时,就返回"没有找到以你输入成语开头的成语,请换一个成语试试",也就是输了的意思,但是为了保证提升您使用成语能力,到目前为止,游戏并不会结束,当你换了一个成语输入时,就会进行下一轮判断。

def guess(word):
    all_data_matched = get_all_starts_with(word)
    if all_data_matched:  # 如果列表不为空
        result_data = format_data(get_random_result(all_data_matched))
        return result_data
    else:  # 如果列表为空
        return "没有找到以%s开头的成语,请换一个成语试试。" % word[-1]

def get_all_starts_with(letter):
    """
    根据一个汉字的拼音,从数据中找出所以以该拼音开头的成语,并返回一个列表
    """
    result = []
    target_pinyin = lazy_pinyin(letter)
    target_pinyin_first = target_pinyin[-1]  # 成功获取目标字的最后一个字的拼音
    for i in data:
        data_word = i[0]
        data_pinyin = i[1]
        data_meaning = i[2]
        data_pinyin_first = data_pinyin[0]  # 获取数据中的成语的第一个字的拼音
        if data_pinyin_first == target_pinyin_first:  # 比较拼音是否相同
            result.append([data_word, data_meaning])
    return result

3. 龙马精神--查看成绩

代码初始化了一个score变量用来存储成语接龙的成绩,当查看成绩时,就输出此成绩即可。

🐉龙行龘龘,成语接龙,祝您龙年大吉🎇

4. 龙争虎斗--查看获得的奖项

🐉龙行龘龘,成语接龙,祝您龙年大吉🎇

“龙争虎斗”的代码如下,根据获得的成绩输出对应的获得的奖项。

        elif choice == '3':
            if score < 3:
                print("恭喜获得“望子成龙”--参与奖")
            elif score < 5:
                print("恭喜获得“龙腾虎跃”--优秀奖")
            elif score < 8:
                print("恭喜获得“龙马精神”--三等奖")
            elif score < 10:
                print("恭喜获得“龙争虎斗”--二等奖")
            elif score > 10:
                print("恭喜获得“龙飞凤舞”--一等奖")
            os.system("pause")

5. 龙潜凤采--查看所有成语

🐉龙行龘龘,成语接龙,祝您龙年大吉🎇

“龙潜风采”将之前从文件中获取的所有成语创建为一个DataFrame对象,打印整个DataFrame就可以输出所有成语,供游戏者学习,每次打印50个成语,学习完这些成语后,会询问游戏者是否继续学习,知道成语全部显示完毕。

        elif choice == '4':
            df = pd.DataFrame(data, columns=['成语', '拼音', '解释'])  # 创建一个DataFrame对象,指定列名
            # 分页显示 DataFrame
            rows_per_page = 50
            page = 1
            while True:
                # 计算要显示的行数
                start = (page - 1) * rows_per_page
                end = start + rows_per_page

                # 将 DataFrame 转换为字符串并输出
                print(df.iloc[start:end].to_string(index=False))

                # 询问用户是否继续查看下一页
                choice = input('查看下一页?(y/n) ')

                # 如果用户选择退出,则结束循环
                if choice.lower() == 'n':
                    break

                # 否则,显示下一页
                page += 1
            os.system("pause")

6. 龙凤呈祥--祝福语

祝您龙年吉祥,祥龙献瑞,瑞气盈门,门庭若市,市井传声,声名远扬,扬眉吐气,气宇轩昂,昂首阔步,步步高升,升官发财,财源广进,进退有度!

🐉龙行龘龘,成语接龙,祝您龙年大吉🎇

7. 龙驭上宾--退出游戏

当游戏者不想玩游戏的时候,便可以输入0退出游戏。

8. 絮絮叨

最近在学python,就写了一个这样的游戏锻炼一下,希望你喜欢。

github地址:github.com/lpdbz/Idiom…