首页 > 其他分享 >龙行龘龘,成语接龙,祝您龙年大吉

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

时间:2024-03-14 13:05:00浏览次数:21  
标签:龙年大吉 word pinyin 接龙 print data 祝您 成语

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

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

成语接龙游戏规则:

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

管你听没听懂,玩就完了!

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地址:https://github.com/lpdbz/IdiomRelay

标签:龙年大吉,word,pinyin,接龙,print,data,祝您,成语
From: https://blog.csdn.net/m0_46069937/article/details/135982719

相关文章

  • 洛谷题单指南-搜索-P1019 [NOIP2000 提高组] 单词接龙
    原题链接:https://www.luogu.com.cn/problem/P1019题意解读:要计算接龙能得到的最长字符串,可以通过DFS暴搜所有可能的接龙方案解题思路:DFS的关键在于两个判断:1、下一个单词是否可以和上一个单词接龙,最短公共长度是多少(只需要看两个单词的最短公共长度,这样能保证接龙更长)2、单词......
  • 龙年大吉,新的一年开启你的职业飞跃之旅
    龙年伊始,万象更新,祝大家开工大吉!新的一年,你是否有很多期待和计划等待实现呢?别在等待啦,增强职场实力,步入云职场快车道,升值加薪不是梦!亚马逊云科技培训与认证是职场弯道超车的有利帮手,相关数据显示如下:69%的专业人士曾表明,亚马逊云科技培训帮助他们增加了收入,74%的人认为亚马......
  • 独立开发周记 #52:龙年大吉
    2023,第六周,0205-0211祝各位:龙年大吉,龙腾四海,生龙活虎,鱼跃龙门,龙马精神watchOS开发年前的几天都在一边学一边做watchOS开发。以前总听说watchOS开发非常折磨人,一开始我还不信,现在我信了。能不能成功运行到真机上,全靠运气即使在真机上运行了,很快也会断开连接Digital......
  • 龙年到,鸿运来!广州流辰信息恭贺大家:新春快乐、龙年大吉!
    爆竹声声除旧岁,新年伊始万象新!白驹过隙,一年又将至。在大家翘首以盼中,硕果累累的2023年已远去,充满希冀的2024年正装载着大家的梦想与憧憬奔赴而来。新的征程、新的开端,在龙年佳节到来之际,广州流辰信息向所有新老客户朋友、每一位员工送上新春祝福和问候,恭贺大家:心想事成、万事如意......
  • 放个烟花迎接龙年春节吧
    不知不觉即将迎来2024龙年春节了。龙的形象在中国传统文化中有着广泛的应用,比如在传统文化中,龙代表着权力、威严、吉祥和神灵的象征,同时也是生命力和繁荣的象征。今天的文章将用原生JavaScript和CanvasAPI实现一个烟花的效果,效果如下所示,在放烟花的过程中将「龙年大吉」的文字逐......
  • 2023.11.21做题笔记(对局匹配,砝码称重shui,单词接龙)
    今天水了一节英语课,翘了一节C++课,就是感觉摆的一批。 对局匹配P8656[蓝桥杯2017国B]对局匹配-洛谷|计算机科学教育新生态(luogu.com.cn)   对于这道题:大佬解法1:#include<bits/stdc++.h>usingnamespacestd;constintN=1e5+5;intn,k,a[N],an......
  • P9242 [蓝桥杯 2023 E题] 接龙数列
    P9242[蓝桥杯2023E题]接龙数列一眼LIS但是TLE八个点。发现是sb了,应该用string来存数直接取首位末位。改完50分,TLE五个点。换状态\[F_i$$为以数字$i$结尾的最长接龙数列。则顺推每个数字,从每个数字的首位$F_{j_1}+1$以及末位$F_{j_n}$中取最大转移而来。即......
  • 单词接龙(JAVA)
    classSolution{Map<String,Integer>wordId=newHashMap<String,Integer>();//哈希图,用于广度优先搜索List<List<Integer>>edge=newArrayList<List<Integer>>();//哈希图的邻接表,嵌套的两个一维数组组成的二维数组,......
  • P1019 [NOIP2000 提高组] 单词接龙
    P1019[NOIP2000提高组]单词接龙注意:1.相邻不包含2.每个单词最多使用两次3.如果两部分可以接龙,直接退出,因为如果再继续,长度一定变短(因为相邻的会抵销)4.加个特殊字符,这样就可以不用特判了因为n很小,直接暴力枚举1.如果两个可以接龙直接合并(注意相邻相同要抵消)2.暴力枚举每个单......
  • 社区团购商城拼团秒杀接龙分销团长小程序开源版开发
    社区团购商城拼团秒杀接龙分销团长小程序开源版开发功能介绍:商品管理:增加商品-商品列表-商品分类-商品单/多规格-商品标签订单管理:订单列表-订单挑选-订单导出-订单打印-批量发货-商品评价会员管理:会员列表-会员挑选-会员导出-虚拟会员-会员等级-会员分组-会员分销团长管理:团长列表......