import streamlit as st import requests import random import json import re # 配置 DEEPSEEK_API_URL = "https://api.deepseek.com/v1/chat/completions" # 尝试从secrets获取API密钥,如果失败则使用默认值 try: DEEPSEEK_API_KEY = st.secrets.get("deepseek_api_key", "your_api_key_here") except Exception: DEEPSEEK_API_KEY = "your_api_key_here" # 本地成语库(仅用于生成题目) IDIOMS = { "一心一意": {"pinyin": "yī xīn yī yì", "meaning": "形容做事专心一意,没有其他念头"}, "意气风发": {"pinyin": "yì qì fēng fā", "meaning": "形容精神振奋,气概豪迈"}, "发扬光大": {"pinyin": "fā yáng guāng dà", "meaning": "使事业、传统等更加发展壮大"}, "大材小用": {"pinyin": "dà cái xiǎo yòng", "meaning": "比喻使用不当,浪费人才"}, "用兵如神": {"pinyin": "yòng bīng rú shén", "meaning": "形容指挥军队作战的才能极高"}, "神采飞扬": {"pinyin": "shén cǎi fēi yáng", "meaning": "形容精神饱满,容光焕发"}, "扬长避短": {"pinyin": "yáng cháng bì duǎn", "meaning": "发扬长处,避开短处"}, "短兵相接": {"pinyin": "duǎn bīng xiāng jiē", "meaning": "比喻面对面地进行激烈的斗争"}, "接二连三": {"pinyin": "jiē èr lián sān", "meaning": "一个接着一个,接连不断"}, "三心二意": {"pinyin": "sān xīn èr yì", "meaning": "形容犹豫不决,意志不坚定"}, "意气用事": {"pinyin": "yì qì yòng shì", "meaning": "凭感情冲动办事,缺乏理智"}, "事在人为": {"pinyin": "shì zài rén wéi", "meaning": "事情的成功全在于人的努力"}, "为人师表": {"pinyin": "wéi rén shī biǎo", "meaning": "指在人品学问方面作别人学习的榜样"}, "表里如一": {"pinyin": "biǎo lǐ rú yī", "meaning": "形容言行和思想完全一致"}, "一如既往": {"pinyin": "yī rú jì wǎng", "meaning": "指态度没有变化,完全像从前一样"}, "往返徒劳": {"pinyin": "wǎng fǎn tú láo", "meaning": "来回白跑,没有成效"}, "劳民伤财": {"pinyin": "láo mín shāng cái", "meaning": "既使人民劳苦,又耗费钱财"}, "财大气粗": {"pinyin": "cái dà qì cū", "meaning": "指人仗着钱财多而气势凌人"}, "粗枝大叶": {"pinyin": "cū zhī dà yè", "meaning": "比喻工作粗糙,不认真细致"}, "叶公好龙": {"pinyin": "yè gōng hào lóng", "meaning": "比喻表面上爱好某事物,实际上并不真爱好"}, "龙马精神": {"pinyin": "lóng mǎ jīng shén", "meaning": "比喻人精神旺盛"}, "神采奕奕": {"pinyin": "shén cǎi yì yì", "meaning": "形容精神饱满,容光焕发"}, "奕奕生辉": {"pinyin": "yì yì shēng huī", "meaning": "形容光彩闪耀的样子"}, "辉煌腾达": {"pinyin": "huī huáng téng dá", "meaning": "形容事业或成就非常辉煌"}, "达官贵人": {"pinyin": "dá guān guì rén", "meaning": "指地位高的官吏和显赫的人物"}, "人山人海": {"pinyin": "rén shān rén hǎi", "meaning": "形容人聚集得非常多"}, "海阔天空": {"pinyin": "hǎi kuò tiān kōng", "meaning": "比喻言谈议论等漫无边际,没有中心"}, "空穴来风": {"pinyin": "kōng xué lái fēng", "meaning": "比喻消息和谣言的传播不是完全没有原因的"}, "风调雨顺": {"pinyin": "fēng tiáo yǔ shùn", "meaning": "形容风雨适合农时"}, "顺理成章": {"pinyin": "shùn lǐ chéng zhāng", "meaning": "指写文章或做事情顺着条理就能做好"}, "章句小儒": {"pinyin": "zhāng jù xiǎo rú", "meaning": "指不能通达大义而拘泥于辨析章句的儒生"}, "儒雅风流": {"pinyin": "rú yǎ fēng liú", "meaning": "形容人学识渊博,举止潇洒"}, "流芳百世": {"pinyin": "liú fāng bǎi shì", "meaning": "好的名声永远流传下去"}, "世代相传": {"pinyin": "shì dài xiāng chuán", "meaning": "祖祖辈辈传下来"}, "传宗接代": {"pinyin": "chuán zōng jiē dài", "meaning": "指生儿育女,延续后代"}, "代人受过": {"pinyin": "dài rén shòu guò", "meaning": "替别人承担过错的责任"}, "过目不忘": {"pinyin": "guò mù bù wàng", "meaning": "看过就不忘记,形容记忆力非常强"}, "忘乎所以": {"pinyin": "wàng hū suǒ yǐ", "meaning": "指因过分兴奋或得意而忘了应有的举止"}, "以卵击石": {"pinyin": "yǐ luǎn jī shí", "meaning": "比喻不自量力,自取灭亡"}, "石沉大海": {"pinyin": "shí chén dà hǎi", "meaning": "比喻从此没有消息"}, "海纳百川": {"pinyin": "hǎi nà bǎi chuān", "meaning": "比喻包容的东西非常广泛,而且数量很大"}, "川流不息": {"pinyin": "chuān liú bù xī", "meaning": "形容行人、车马等像水流一样连续不断"}, "息事宁人": {"pinyin": "xī shì níng rén", "meaning": "指调解纠纷,使事情平息下来,消除事端,使人们平安相处"}, "人山人海": {"pinyin": "rén shān rén hǎi", "meaning": "形容人聚集得非常多"}, "海底捞月": {"pinyin": "hǎi dǐ lāo yuè", "meaning": "比喻去做根本做不到的事,只能白费力气"}, "月明星稀": {"pinyin": "yuè míng xīng xī", "meaning": "月亮明亮时,星星就显得稀疏了"}, "稀奇古怪": {"pinyin": "xī qí gǔ guài", "meaning": "指很少见,很奇异,不同一般"}, "怪诞不经": {"pinyin": "guài dàn bù jīng", "meaning": "指言语奇怪荒唐,不合常理"}, "经久不息": {"pinyin": "jīng jiǔ bù xī", "meaning": "经过长时间停不下来"}, "息息相关": {"pinyin": "xī xī xiāng guān", "meaning": "形容彼此的关系非常密切"}, "关门大吉": {"pinyin": "guān mén dà jí", "meaning": "指商店倒闭或企业破产停业"}, "吉祥如意": {"pinyin": "jí xiáng rú yì", "meaning": "多用祝颂他人美满称心"}, "意气相投": {"pinyin": "yì qì xiāng tóu", "meaning": "指志趣和性格相同的人,彼此投合"}, "投桃报李": {"pinyin": "tóu táo bào lǐ", "meaning": "比喻友好往来或互相赠送东西"}, "李代桃僵": {"pinyin": "lǐ dài táo jiāng", "meaning": "比喻互相顶替或代人受过"}, "僵李代桃": {"pinyin": "jiāng lǐ dài táo", "meaning": "比喻代人受罪责或以此代彼"}, "桃红柳绿": {"pinyin": "táo hóng liǔ lǜ", "meaning": "形容花木繁盛、色彩鲜艳的春景"}, "绿水青山": {"pinyin": "lǜ shuǐ qīng shān", "meaning": "泛称美好山河"}, "山明水秀": {"pinyin": "shān míng shuǐ xiù", "meaning": "形容风景优美"}, "秀色可餐": {"pinyin": "xiù sè kě cān", "meaning": "形容女子姿容非常美丽或景物非常优美"}, "餐风露宿": {"pinyin": "cān fēng lù sù", "meaning": "形容旅途或野外工作的辛苦"}, "宿弊一清": {"pinyin": "sù bì yī qīng", "meaning": "多年的弊病一下就肃清了"}, "清夜扪心": {"pinyin": "qīng yè mén xīn", "meaning": "指深夜不眠,进行反省"}, "心花怒放": {"pinyin": "xīn huā nù fàng", "meaning": "心里高兴得像花儿盛开一样,形容极其高兴"}, "放虎归山": {"pinyin": "fàng hǔ guī shān", "meaning": "比喻把坏人放回老巢,留下祸根"}, "山高水长": {"pinyin": "shān gāo shuǐ cháng", "meaning": "原比喻人的风范或声誉像高山一样永远存在,后比喻恩德深厚"}, "长生不老": {"pinyin": "cháng shēng bù lǎo", "meaning": "指生命不老不死永生不灭"}, "老当益壮": {"pinyin": "lǎo dāng yì zhuàng", "meaning": "年纪虽老而志气更旺盛,干劲更足"}, "壮志凌云": {"pinyin": "zhuàng zhì líng yún", "meaning": "形容理想宏伟远大"}, "云开见日": {"pinyin": "yún kāi jiàn rì", "meaning": "比喻黑暗已经过去,光明已经到来"}, "日新月异": {"pinyin": "rì xīn yuè yì", "meaning": "每天都在更新,每月都有变化,指发展或进步迅速,不断出现新事物、新气象"}, "异想天开": {"pinyin": "yì xiǎng tiān kāi", "meaning": "比喻荒唐离奇,想象着暂时无法实现的事"}, "开门见山": {"pinyin": "kāi mén jiàn shān", "meaning": "比喻说话或写文章直截了当谈本题,不拐弯抹角"}, "山高路远": {"pinyin": "shān gāo lù yuǎn", "meaning": "形容路途艰难而遥远"}, "远见卓识": {"pinyin": "yuǎn jiàn zhuó shí", "meaning": "有远大的眼光和高明的见解"}, "识文断字": {"pinyin": "shí wén duàn zì", "meaning": "指识字,指有一点文化知识"}, "字斟句酌": {"pinyin": "zì zhēn jù zhuó", "meaning": "指写文章或说话时慎重细致,一字一句地推敲琢磨"}, "酌古御今": {"pinyin": "zhuó gǔ yù jīn", "meaning": "指择古之善者以为治今的借鉴"}, "今非昔比": {"pinyin": "jīn fēi xī bǐ", "meaning": "现在不是过去能比得上的,多指形势、自然面貌等发生了巨大的变化"}, "比翼双飞": {"pinyin": "bǐ yì shuāng fēi", "meaning": "比喻夫妻情投意合,在事业上并肩前进"}, "飞黄腾达": {"pinyin": "fēi huáng téng dá", "meaning": "形容骏马奔腾飞驰,比喻骤然得志,官职升得很快"}, "达官贵人": {"pinyin": "dá guān guì rén", "meaning": "指地位高的官吏和显赫的人物"}, "人山人海": {"pinyin": "rén shān rén hǎi", "meaning": "形容人聚集得非常多"}, "海枯石烂": {"pinyin": "hǎi kū shí làn", "meaning": "海水干涸、石头腐烂,形容历时久远,比喻坚定的意志永远不变"}, "烂熟于心": {"pinyin": "làn shú yú xīn", "meaning": "形容对某件事情或者事物的发展情况在心里记得很清楚"}, "心灵手巧": {"pinyin": "xīn líng shǒu qiǎo", "meaning": "心思灵敏,手艺巧妙"}, "巧夺天工": {"pinyin": "qiǎo duó tiān gōng", "meaning": "人工的精巧胜过天然,形容技艺十分巧妙"}, "工欲善其事,必先利其器": {"pinyin": "gōng yù shàn qí shì,bì xiān lì qí qì", "meaning": "比喻要做好一件事,准备工作非常重要"}, "器宇轩昂": {"pinyin": "qì yǔ xuān áng", "meaning": "形容人精力充沛,风度不凡"}, "昂首挺胸": {"pinyin": "áng shǒu tǐng xiōng", "meaning": "抬起头,挺起胸膛,形容斗志高,士气旺"}, "胸有成竹": {"pinyin": "xiōng yǒu chéng zhú", "meaning": "原指画竹子要在心里有一幅竹子的形象,后比喻在做事之前已经拿定主意"}, "竹报平安": {"pinyin": "zhú bào píng ān", "meaning": "比喻平安家信"}, "安步当车": {"pinyin": "ān bù dàng chē", "meaning": "以从容的步行代替乘车,形容轻松缓慢地行走"}, "车水马龙": {"pinyin": "chē shuǐ mǎ lóng", "meaning": "形容来往车马很多,连续不断的热闹情景"}, "龙飞凤舞": {"pinyin": "lóng fēi fèng wǔ", "meaning": "原形容山势的蜿蜒雄壮,后也形容书法笔势有力,灵活舒展"}, "舞文弄墨": {"pinyin": "wǔ wén nòng mò", "meaning": "故意玩弄文笔,原指曲引法律条文作弊,后常指玩弄文字技巧"}, "墨守成规": {"pinyin": "mò shǒu chéng guī", "meaning": "指思想保守,守着老规矩不肯改变"}, "规行矩步": {"pinyin": "guī xíng jǔ bù", "meaning": "指严格按照规矩办事,毫不苟且"}, "步步为营": {"pinyin": "bù bù wéi yíng", "meaning": "军队每向前推进一步就设下一首营垒,形容防守严密,行动谨慎"}, "营私舞弊": {"pinyin": "yíng sī wǔ bì", "meaning": "因图谋私利而玩弄欺骗手段做犯法的事"}, "弊绝风清": {"pinyin": "bì jué fēng qīng", "meaning": "贪污、舞弊的事情没有了,形容坏事绝迹,社会风气良好"}, "清风明月": {"pinyin": "qīng fēng míng yuè", "meaning": "只与清风、明月为伴,比喻不随便结交朋友,也比喻清闲无事"}, "月白风清": {"pinyin": "yuè bái fēng qīng", "meaning": "形容幽静美好的夜晚"}, "清风徐来": {"pinyin": "qīng fēng xú lái", "meaning": "清风缓缓地吹来"}, "来日方长": {"pinyin": "lái rì fāng cháng", "meaning": "未来的日子还很长,表示事有可为,或劝人不必急于做某事"}, "长驱直入": {"pinyin": "cháng qū zhí rù", "meaning": "迅速向很远的目的地前进,形容进军迅猛顺利"}, "入木三分": {"pinyin": "rù mù sān fēn", "meaning": "形容书法极有笔力,现多比喻分析问题很深刻"}, "分秒必争": {"pinyin": "fēn miǎo bì zhēng", "meaning": "一分一秒也一定要争取,形容抓紧时间"}, "争先恐后": {"pinyin": "zhēng xiān kǒng hòu", "meaning": "抢着向前,唯恐落后"}, "后来居上": {"pinyin": "hòu lái jū shàng", "meaning": "后来的超过先前的,用以称赞后起之秀超过前辈"}, "上行下效": {"pinyin": "shàng xíng xià xiào", "meaning": "上面的人怎么做,下面的人就跟着怎么干"}, "效颦学步": {"pinyin": "xiào pín xué bù", "meaning": "比喻盲目模仿,效果极坏"}, "步履维艰": {"pinyin": "bù lǚ wéi jiān", "meaning": "指行走困难行动不方便"}, "艰苦奋斗": {"pinyin": "jiān kǔ fèn dòu", "meaning": "不怕艰难困苦,坚持英勇斗争"}, "斗志昂扬": {"pinyin": "dòu zhì áng yáng", "meaning": "斗争的意志旺盛"}, "扬长而去": {"pinyin": "yáng cháng ér qù", "meaning": "大模大样地径自走了"}, "去伪存真": {"pinyin": "qù wěi cún zhēn", "meaning": "除掉虚假的,留下真实的"}, "真相大白": {"pinyin": "zhēn xiàng dà bái", "meaning": "真实情况完全弄明白了"}, "白头偕老": {"pinyin": "bái tóu xié lǎo", "meaning": "夫妻相亲相爱,一直到老"}, "老气横秋": {"pinyin": "lǎo qì héng qiū", "meaning": "形容老练而自负的神态,现形容自高自大,摆老资格,也形容缺乏朝气"}, "秋高气爽": {"pinyin": "qiū gāo qì shuǎng", "meaning": "形容秋季晴空万里,天气清爽"}, "爽心悦目": {"pinyin": "shuǎng xīn yuè mù", "meaning": "指景色美丽,令人心情愉快"}, "目瞪口呆": {"pinyin": "mù dèng kǒu dāi", "meaning": "形容因吃惊或害怕而发愣的样子"}, "呆若木鸡": {"pinyin": "dāi ruò mù jī", "meaning": "形容因恐惧或惊异而发愣的样子"}, "鸡飞狗跳": {"pinyin": "jī fēi gǒu tiào", "meaning": "把鸡吓得飞起来,把狗吓得到处乱跳,形容惊慌得乱成一团"}, "跳梁小丑": {"pinyin": "tiào liáng xiǎo chǒu", "meaning": "比喻猖狂捣乱而成不了大气候的坏人"}, "丑态百出": {"pinyin": "chǒu tài bǎi chū", "meaning": "各种丑恶的样子都表现出来了"}, "出类拔萃": {"pinyin": "chū lèi bá cuì", "meaning": "超出同类之上,多指人的品德才能"}, "萃萃学子": {"pinyin": "cuì cuì xué zǐ", "meaning": "众多的学生"}, "子虚乌有": {"pinyin": "zǐ xū wū yǒu", "meaning": "指假设的、不存在的、不真实的事情"}, "有目共睹": {"pinyin": "yǒu mù gòng dǔ", "meaning": "指非常明显,谁都看得见"}, "睹物思人": {"pinyin": "dǔ wù sī rén", "meaning": "看见死去或离别的人留下的东西就想起了这个人"}, "人山人海": {"pinyin": "rén shān rén hǎi", "meaning": "形容人聚集得非常多"}, "海阔天空": {"pinyin": "hǎi kuò tiān kōng", "meaning": "比喻言谈议论等漫无边际,没有中心"}, "空穴来风": {"pinyin": "kōng xué lái fēng", "meaning": "比喻消息和谣言的传播不是完全没有原因的"}, "风言风语": {"pinyin": "fēng yán fēng yǔ", "meaning": "没有根据的、不怀好意的、带有讥讽的话"}, "语重心长": {"pinyin": "yǔ zhòng xīn cháng", "meaning": "话深刻有力,情意深长"}, "长话短说": {"pinyin": "cháng huà duǎn shuō", "meaning": "把要用很多话才能说完的事用简短的话说完"}, "说三道四": {"pinyin": "shuō sān dào sì", "meaning": "形容不负责任地胡乱议论"}, "四面楚歌": {"pinyin": "sì miàn chǔ gē", "meaning": "比喻陷入四面受敌、孤立无援的境地"}, "歌舞升平": {"pinyin": "gē wǔ shēng píng", "meaning": "边歌边舞,庆祝太平,有粉饰太平的意思"}, "平心静气": {"pinyin": "píng xīn jìng qì", "meaning": "心情平和,态度冷静"}, "气宇轩昂": {"pinyin": "qì yǔ xuān áng", "meaning": "形容人精力充沛,风度不凡"}, "昂首阔步": {"pinyin": "áng shǒu kuò bù", "meaning": "抬起头迈开大步向前,形容精神抖擞,意气风发"}, "步履蹒跚": {"pinyin": "bù lǚ pán shān", "meaning": "走路一瘸一拐的样子,形容走路腿脚不方便,歪歪倒倒的样子"}, "跚跚来迟": {"pinyin": "shān shān lái chí", "meaning": "形容慢腾腾地来晚了"}, "迟疑不决": {"pinyin": "chí yí bù jué", "meaning": "形容拿不定主意"}, "决一雌雄": {"pinyin": "jué yī cí xióng", "meaning": "指较量一下胜败高低"}, "雄才大略": {"pinyin": "xióng cái dà lüè", "meaning": "非常杰出的才智和谋略"}, "略知一二": {"pinyin": "lüè zhī yī èr", "meaning": "略微知道一点"}, "二话不说": {"pinyin": "èr huà bù shuō", "meaning": "不说任何别的话,指立即行动"}, "说一不二": {"pinyin": "shuō yī bù èr", "meaning": "说怎么样就怎么样,形容说话算数"}, "二龙戏珠": {"pinyin": "èr lóng xì zhū", "meaning": "两条龙相对,戏玩着一颗宝珠"}, "珠光宝气": {"pinyin": "zhū guāng bǎo qì", "meaning": "形容妇女服饰华贵富丽,闪耀着珍宝的光色"}, "气吞山河": {"pinyin": "qì tūn shān hé", "meaning": "气势可以吞没山河,形容气魄很大"}, "河清海晏": {"pinyin": "hé qīng hǎi yàn", "meaning": "黄河水清,大海平静,形容天下太平"}, "晏然自若": {"pinyin": "yàn rán zì ruò", "meaning": "形容在紧张状态下沉静如常"}, "若无其事": {"pinyin": "ruò wú qí shì", "meaning": "好像没有那么回事似的,形容不动声色或漠不关心"}, "事半功倍": {"pinyin": "shì bàn gōng bèi", "meaning": "指做事得法,因而费力小,收效大"}, "倍道兼行": {"pinyin": "bèi dào jiān xíng", "meaning": "每天加倍行进,一天走两天的路程,形容加速急行"}, "行云流水": {"pinyin": "xíng yún liú shuǐ", "meaning": "形容文章自然不受约束,就像漂浮着的云和流动着的水一样"}, "水落石出": {"pinyin": "shuǐ luò shí chū", "meaning": "水落下去,水底的石头就露出来,比喻事情的真相完全显露出来"}, "出人头地": {"pinyin": "chū rén tóu dì", "meaning": "指高人一等,形容德才超众或成就突出"}, "地大物博": {"pinyin": "dì dà wù bó", "meaning": "指国家疆土辽阔,资源丰富"}, "博古通今": {"pinyin": "bó gǔ tōng jīn", "meaning": "对古代的事知道得很多,并且通晓现代的事情,形容知识丰富"}, "今不如昔": {"pinyin": "jīn bù rú xī", "meaning": "现在不如过去,多表示对世事的感叹"}, "昔不如今": {"pinyin": "xī bù rú jīn", "meaning": "现在比过去好"}, "今非昔比": {"pinyin": "jīn fēi xī bǐ", "meaning": "现在不是过去能比得上的,多指形势、自然面貌等发生了巨大的变化"}, "比比皆是": {"pinyin": "bǐ bǐ jiē shì", "meaning": "到处都是,形容极其常见"}, "是非曲直": {"pinyin": "shì fēi qǔ zhí", "meaning": "正确还是不正确,有理还是无理"}, "直截了当": {"pinyin": "zhí jié liǎo dàng", "meaning": "形容说话做事爽快,不绕弯子"}, "当机立断": {"pinyin": "dāng jī lì duàn", "meaning": "在紧要时刻立即做出决断"}, "断章取义": {"pinyin": "duàn zhāng qǔ yì", "meaning": "指不顾全篇文章或谈话的内容,孤立地取其中的一段或一句的意思"}, "义不容辞": {"pinyin": "yì bù róng cí", "meaning": "道义上不允许推辞"}, "辞旧迎新": {"pinyin": "cí jiù yíng xīn", "meaning": "告别旧的一年,迎接新的一年的到来"}, "新陈代谢": {"pinyin": "xīn chén dài xiè", "meaning": "指生物体不断用新物质代替旧物质的过程"}, "谢天谢地": {"pinyin": "xiè tiān xiè dì", "meaning": "表示目的达到或困难解除后满意轻松的心情"}, "地老天荒": {"pinyin": "dì lǎo tiān huāng", "meaning": "指经历的时间极久"}, "荒诞不经": {"pinyin": "huāng dàn bù jīng", "meaning": "形容言论荒谬,不合情理"}, "经年累月": {"pinyin": "jīng nián lěi yuè", "meaning": "形容经历很长的时间"}, "月朗风清": {"pinyin": "yuè lǎng fēng qīng", "meaning": "月光明朗,微风清爽,形容宁静美好的月夜"}, "清风明月": {"pinyin": "qīng fēng míng yuè", "meaning": "只与清风、明月为伴,比喻不随便结交朋友,也比喻清闲无事"}, "月黑风高": {"pinyin": "yuè hēi fēng gāo", "meaning": "比喻没有月光风也很大的夜晚,比喻险恶的环境"}, "高风亮节": {"pinyin": "gāo fēng liàng jié", "meaning": "形容道德和行为都很高尚"}, "节衣缩食": {"pinyin": "jié yī suō shí", "meaning": "省吃省穿,形容节约"}, "食不甘味": {"pinyin": "shí bù gān wèi", "meaning": "吃东西都觉得没有味道,形容心里有事,吃东西也不香"}, "味同嚼蜡": {"pinyin": "wèi tóng jiáo là", "meaning": "像吃蜡一样,没有一点儿味,形容语言或文章枯燥无味"}, "蜡炬成灰": {"pinyin": "là jù chéng huī", "meaning": "蜡烛烧成了灰,比喻自己为不能相聚而痛苦,无尽无休,仿佛蜡泪直到蜡烛烧成了灰方始流尽一样"}, "灰心丧气": {"pinyin": "huī xīn sàng qì", "meaning": "形容因失败或不顺利而失去信心,意志消沉"}, "气象万千": {"pinyin": "qì xiàng wàn qiān", "meaning": "形容景象或事物壮丽而多变化"}, "千变万化": {"pinyin": "qiān biàn wàn huà", "meaning": "形容变化极多"}, "化为乌有": {"pinyin": "huà wéi wū yǒu", "meaning": "变得什么都没有,指全部消失或完全落空"}, "有备无患": {"pinyin": "yǒu bèi wú huàn", "meaning": "事先有准备,就可以避免祸患"}, "患得患失": {"pinyin": "huàn dé huàn shī", "meaning": "担心得不到,得到了又担心失掉,形容对个人得失看得很重"}, "失之交臂": {"pinyin": "shī zhī jiāo bì", "meaning": "形容当面错过"}, "臂有四肘": {"pinyin": "bì yǒu sì zhǒu", "meaning": "比喻不凡的相貌"}, "肘腋之患": {"pinyin": "zhǒu yè zhī huàn", "meaning": "比喻极近的地方的祸患"}, "患难与共": {"pinyin": "huàn nàn yǔ gòng", "meaning": "共同承担危险和困难,指彼此关系密切,利害一致"}, "共商国是": {"pinyin": "gòng shāng guó shì", "meaning": "共同商量国家的政策和方针"}, "是非分明": {"pinyin": "shì fēi fēn míng", "meaning": "正确与错误非常分明"}, "明目张胆": {"pinyin": "míng mù zhāng dǎn", "meaning": "原指有胆识,敢做敢为,后形容公开放肆地干坏事"}, "胆大包天": {"pinyin": "dǎn dà bāo tiān", "meaning": "形容胆子极大"}, "天长地久": {"pinyin": "tiān cháng dì jiǔ", "meaning": "跟天和地存在的时间那样长,形容时间悠久,也形容永远不变(多指爱情)"}, "久别重逢": {"pinyin": "jiǔ bié chóng féng", "meaning": "指朋友或亲人在长久分别之后再次见面"}, "逢凶化吉": {"pinyin": "féng xiōng huà jí", "meaning": "遇到凶险转化为吉祥、顺利,这是带有迷信的说法"}, "吉祥如意": {"pinyin": "jí xiáng rú yì", "meaning": "多用祝颂他人美满称心"}, "意气风发": {"pinyin": "yì qì fēng fā", "meaning": "形容精神振奋,气概豪迈"}, "发扬光大": {"pinyin": "fā yáng guāng dà", "meaning": "使事业、传统等更加发展壮大"}, "大智若愚": {"pinyin": "dà zhì ruò yú", "meaning": "某些才智出众的人,看来好像愚笨,不露锋芒"}, "愚公移山": {"pinyin": "yú gōng yí shān", "meaning": "比喻坚持不懈地改造自然和坚定不移地进行斗争"}, "山清水秀": {"pinyin": "shān qīng shuǐ xiù", "meaning": "形容风景优美"}, "秀外慧中": {"pinyin": "xiù wài huì zhōng", "meaning": "外表秀丽,内心聪明"}, "中流砥柱": {"pinyin": "zhōng liú dǐ zhù", "meaning": "比喻坚强独立的人能在动荡艰难的环境中起支柱作用"}, "柱石之坚": {"pinyin": "zhù shí zhī jiān", "meaning": "像柱石一样坚硬,比喻大臣坚强可靠,能担负国家重任"}, "坚如磐石": {"pinyin": "jiān rú pán shí", "meaning": "像大石头一样坚固,比喻不可动摇"}, "石破天惊": {"pinyin": "shí pò tiān jīng", "meaning": "原形容箜篌的声音,忽而高亢,忽而低沉,出人意外,有难以形容的奇境,后多比喻文章议论新奇惊人"}, "惊天动地": {"pinyin": "jīng tiān dòng dì", "meaning": "使天地惊动,形容某个事件的声势或意义极大"}, "地动山摇": {"pinyin": "dì dòng shān yáo", "meaning": "地震发生时大地颤动,山河摇摆,亦形容声势浩大或斗争激烈"}, "摇头晃脑": {"pinyin": "yáo tóu huàng nǎo", "meaning": "形容自己感觉很有乐趣或自己认为很不差的样子"}, "脑满肠肥": {"pinyin": "nǎo mǎn cháng féi", "meaning": "形容饱食终日的剥削者大腹便便,肥胖丑陋的形象"}, "肥头大耳": {"pinyin": "féi tóu dà ěr", "meaning": "一个肥胖的脑袋,两只大耳朵,形容体态肥胖,有时指小孩可爱"}, "耳熟能详": {"pinyin": "ěr shú néng详", "meaning": "指听得多了,能够说得很清楚、很详细"}, "详略得当": {"pinyin": "xiáng lüè dé dàng", "meaning": "指应当详细和应当简略的地方都处理得很妥当"}, "当务之急": {"pinyin": "dāng wù zhī jí", "meaning": "当前任务中最急切要办的事"}, "急功近利": {"pinyin": "jí gōng jìn lì", "meaning": "急于求成,贪图眼前的成效和利益"}, "利欲熏心": {"pinyin": "lì yù xūn xīn", "meaning": "贪财图利的欲望迷住了心窍"}, "心灰意冷": {"pinyin": "xīn huī yì lěng", "meaning": "灰心失望,意志消沉"}, "冷若冰霜": {"pinyin": "lěng ruò bīng shuāng", "meaning": "冷得象冰霜一样,比喻待人接物毫无感情,象冰霜一样冷,也比喻态度严正,不可接近"}, "霜露之病": {"pinyin": "shuāng lù zhī bìng", "meaning": "因感受风寒而引起的病"}, "病入膏肓": {"pinyin": "bìng rù gāo huāng", "meaning": "形容病情十分严重,无法医治,比喻事情到了无法挽救的地步"}, "荒诞不经": {"pinyin": "huāng dàn bù jīng", "meaning": "形容言论荒谬,不合情理"}, "经久不息": {"pinyin": "jīng jiǔ bù xī", "meaning": "经过长时间停不下来"}, "息事宁人": {"pinyin": "xī shì níng rén", "meaning": "指调解纠纷,使事情平息下来,消除事端,使人们平安相处"}, "人山人海": {"pinyin": "rén shān rén hǎi", "meaning": "形容人聚集得非常多"}, "海纳百川": {"pinyin": "hǎi nà bǎi chuān", "meaning": "比喻包容的东西非常广泛,而且数量很大"}, "川流不息": {"pinyin": "chuān liú bù xī", "meaning": "形容行人、车马等像水流一样连续不断"}, "息息相关": {"pinyin": "xī xī xiāng guān", "meaning": "形容彼此的关系非常密切"}, "关门大吉": {"pinyin": "guān mén dà jí", "meaning": "指商店倒闭或企业破产停业"}, "吉祥如意": {"pinyin": "jí xiáng rú yì", "meaning": "多用祝颂他人美满称心"}, "意气风发": {"pinyin": "yì qì fēng fā", "meaning": "形容精神振奋,气概豪迈"}, "发扬光大": {"pinyin": "fā yáng guāng dà", "meaning": "使事业、传统等更加发展壮大"} } # 谐音字典(简化版,仅包含部分常见谐音) HOMOPHONES = { "一": ["衣", "医", "依", "伊", "仪", "宜", "贻", "移", "遗", "疑", "沂", "颐", "彝", "乙", "已", "以", "亿", "义", "忆", "艺", "议", "亦", "易", "译", "异", "翼", "翌", "绎", "轶", "役", "疫", "诣", "谊", "逸", "毅", "熠", "镒", "驿", "翳", "臆", "肄", "逸"], "人": ["仁", "壬", "任", "忍", "韧", "认", "刃", "纫", "仞", "荏", "稔", "妊", "饪", "衽"], "大": ["达", "妲", "怛", "炟", "笪", "靼", "打", "瘩", "迖", "跶", "搭", "嗒", "褡", "耷", "大", "汏", "釱"], "天": ["填", "田", "甜", "恬", "腆", "舔", "阗", "钿", "畋", "佃", "畑", "沺", "忝", "殄", "瑱", "璅"], "地": ["第", "弟", "帝", "谛", "蒂", "缔", "娣", "睇", "碲", "递", "第", "棣", "睇", "娣", "嵽", "馰"], "风": ["丰", "封", "枫", "疯", "峰", "烽", "锋", "蜂", "葑", "酆", "冯", "逢", "缝", "讽", "奉", "俸", "凤", "唪", "堋", "捀", "珮", "琫", "甮", "紴", "俸", "蜯", "諷", "靊", "霛", "鳯"], "月": ["越", "粤", "跃", "钥", "岳", "乐", "约", "悦", "阅", "跃", "栎", "钥", "钺", "岳", "粤", "樾", "龠", "瀹", "爚", "礿", "篗", "籥", "跃", "鸑", "鷽"], "水": ["睡", "税", "说", "谁", "水", "税", "睡", "说", "谁", "涗", "祱", "説", "鋭", "鐩", "陎", "说"], "火": ["伙", "或", "货", "获", "祸", "霍", "惑", "豁", "活", "火", "伙", "或", "货", "获", "祸", "霍", "惑", "豁", "活", "钬", "伙", "吙", "佸", "栝", "湱", "漷", "煷", "瘛", "穫", "篧", "輠", "锪", "镬", "耠", "祸", "靃", "蠖", "諕", "謋", "貣", "货", "趏", "跞", "踝", "躧", "鏸", "鐜", "镬", "雘", "霍", "嚯", "蠖", "祸", "穫", "耠", "锪", "镬", "雘"], "山": ["杉", "删", "姗", "珊", "栅", "舢", "扇", "善", "擅", "赡", "膳", "缮", "嬗", "骟", "疝", "讪", "汕", "潸", "澘", "邖", "删", "姗", "珊", "栅", "舢", "扇", "善", "擅", "赡", "膳", "缮", "嬗", "骟", "疝", "讪", "汕", "潸", "澘", "邖"], "石": ["时", "识", "实", "拾", "食", "蚀", "史", "使", "始", "驶", "士", "氏", "市", "示", "世", "仕", "式", "事", "侍", "势", "视", "试", "饰", "室", "是", "柿", "峙", "适", "逝", "释", "嗜", "噬", "誓", "嗜", "噬", "誓", "莳", "蓍", "弑", "螫", "舐", "谥", "氏", "世", "仕", "式", "事", "侍", "势", "视", "试", "饰", "室", "是", "柿", "峙", "适", "逝", "释", "嗜", "噬", "誓", "莳", "蓍", "弑", "螫", "舐", "谥", "舐", "谥"], "金": ["今", "斤", "巾", "仅", "尽", "卺", "紧", "堇", "锦", "谨", "馑", "瑾", "槿", "瑾", "觐", "斤", "筋", "仅", "卺", "紧", "堇", "锦", "谨", "馑", "瑾", "槿", "瑾", "觐", "斤", "筋", "仅", "卺", "紧", "堇", "锦", "谨", "馑", "瑾", "槿", "瑾", "觐"], "木": ["目", "牧", "睦", "穆", "暮", "募", "墓", "幕", "慕", "亩", "母", "牡", "姆", "拇", "姆", "母", "牡", "姆", "拇", "姆", "母", "牡", "姆", "拇", "姆"], "土": ["吐", "兔", "菟", "堍", "秃", "突", "图", "徒", "途", "涂", "屠", "荼", "菟", "堍", "秃", "突", "图", "徒", "途", "涂", "屠", "荼"], "草": ["操", "曹", "槽", "嘈", "漕", "螬", "艚", "褿", "嘈", "漕", "螬", "艚", "褿"], "花": ["华", "哗", "骅", "铧", "划", "画", "话", "桦", "猾", "滑", "化", "划", "画", "话", "桦", "猾", "滑", "化"], "鸟": ["尿", "捏", "聂", "啮", "镊", "镍", "涅", "蘖", "孽", "啮", "镊", "镍", "涅", "蘖", "孽"], "鱼": ["渔", "余", "予", "妤", "盂", "臾", "鱼", "俞", "谀", "娱", "萸", "雩", "嵛", "愉", "揄", "瑜", "榆", "虞", "愚", "觎", "舆", "窬", "逾", "腴", "渝", "愉", "瑜", "榆", "虞", "愚", "觎", "舆", "窬", "逾", "腴", "渝"], "虫": ["冲", "充", "忡", "憧", "艟", "舂", "虫", "崇", "宠", "铳", "冲", "充", "忡", "憧", "艟", "舂", "虫", "崇", "宠", "铳"], "日": ["入", "如", "茹", "孺", "蠕", "儒", "濡", "襦", "嚅", "孺", "蠕", "儒", "濡", "襦", "嚅"], "月": ["越", "粤", "跃", "钥", "岳", "乐", "约", "悦", "阅", "跃", "栎", "钥", "钺", "岳", "粤", "樾", "龠", "瀹", "爚", "礿", "篗", "籥", "跃", "鸑", "鷽"], "星": ["兴", "性", "姓", "幸", "形", "刑", "型", "行", "陉", "荥", "型", "硎", "铏", "饧", "悻", "婞", "涬", "睲", "惺", "猩", "瑆", "煋", "觲", "謃", "醒", "擤", "省", "眚", "圣", "胜", "晟", "盛", "剩", "乘", "绳", "胜", "晟", "盛", "剩", "乘", "绳"], "光": ["广", "犷", "逛", "咣", "洸", "茪", "珖", "胱", "輄", "銧", "黆", "姯", "侊", "咣", "洸", "茪", "珖", "胱", "輄", "銧", "黆", "姯", "侊"], "明": ["名", "命", "鸣", "冥", "铭", "茗", "溟", "暝", "瞑", "螟", "酩", "洺", "眀", "朙", "螟", "蓂", "铭", "溟", "暝", "瞑", "螟", "酩", "洺"], "春": ["椿", "醇", "唇", "纯", "莼", "淳", "鹑", "蝽", "蠢", "春", "椿", "醇", "唇", "纯", "莼", "淳", "鹑", "蝽", "蠢"], "夏": ["下", "吓", "夏", "厦", "罅", "瞎", "虾", "霞", "暇", "瑕", "遐", "黠", "下", "吓", "夏", "厦", "罅", "瞎", "虾", "霞", "暇", "瑕", "遐", "黠"], "秋": ["邱", "丘", "蚯", "秋", "鳅", "湫", "楸", "萩", "啾", "遒", "酋", "逑", "球", "赇", "巯", "蝤", "鳅", "囚", "泅", "俅", "酋", "逑", "球", "赇", "巯", "蝤", "鳅"], "冬": ["东", "咚", "岽", "氡", "鸫", "董", "懂", "动", "冻", "侗", "垌", "峒", "恫", "栋", "洞", "胨", "硐", "鲷", "东", "咚", "岽", "氡", "鸫", "董", "懂", "动", "冻", "侗", "垌", "峒", "恫", "栋", "洞", "胨", "硐", "鲷"] } # 同音字检查函数 def is_homophone(char1, char2): """检查两个字是否为同音字""" if char1 == char2: return True # 检查是否在谐音字典中 for key, values in HOMOPHONES.items(): if char1 == key and char2 in values: return True if char2 == key and char1 in values: return True return False # 获取下一个成语(本地库) def get_next_idioms(last_char): """获取以指定字符开头的成语(支持谐音)""" result = [] for idiom in IDIOMS: first_char = idiom[0] if idiom.startswith(last_char) or is_homophone(first_char, last_char): result.append(idiom) return result # 验证成语函数 def validate_idiom(idiom, last_char, history): """验证成语是否有效(完全依赖AI验证,支持谐音)""" # 检查是否已经使用过 if idiom in history: return False, "成语已经使用过" # 检查首字是否匹配(支持谐音) if last_char: first_char = idiom[0] if not (idiom.startswith(last_char) or is_homophone(first_char, last_char)): return False, f"成语必须以'{last_char}'或其谐音开头" # 完全依赖AI验证,不再使用本地成语库 if DEEPSEEK_API_KEY and DEEPSEEK_API_KEY != "your_api_key_here": try: headers = { "Content-Type": "application/json", "Authorization": f"Bearer {DEEPSEEK_API_KEY}" } # 专业的成语验证提示 system_prompt = "你是一个专业的成语专家,精通中国成语。请判断以下内容是否为标准的四字成语。\n" system_prompt += "判断标准:\n" system_prompt += "1. 必须是四字短语\n" system_prompt += "2. 必须是约定俗成的成语,而非普通短语\n" system_prompt += "3. 包括常见成语、典故成语、书面成语和较少见的成语\n" system_prompt += "4. 只要符合成语特征,即使不太常见也应判断为成语\n" system_prompt += "请严格按照要求判断,如果是成语,请只回答'是';如果不是成语,请只回答'否'。" messages = [ {"role": "system", "content": system_prompt}, {"role": "user", "content": f"{idiom}"} ] data = { "model": "deepseek-chat", "messages": messages, "max_tokens": 10, "temperature": 0.1, "response_format": {"type": "text"} } response = requests.post(DEEPSEEK_API_URL, headers=headers, json=data, timeout=8) response.raise_for_status() result = response.json() ai_answer = result['choices'][0]['message']['content'].strip() print(f"AI验证结果: {idiom} -> {ai_answer}") # 更宽松的AI回答匹配 if ai_answer in ["是", "是的", "对", "正确", "是成语"]: # AI确认是成语 return True, "AI验证通过" elif ai_answer in ["否", "不是", "不对", "错误", "不是成语"]: return False, "成语不存在" else: # AI回答不明确,尝试再次验证 print(f"AI回答不明确: {ai_answer}") try: messages = [ {"role": "system", "content": "请重新判断,只回答'是'或'否',不要添加任何其他内容"}, {"role": "user", "content": f"{idiom}是否是标准的四字成语?"} ] data['messages'] = messages response = requests.post(DEEPSEEK_API_URL, headers=headers, json=data, timeout=5) response.raise_for_status() result = response.json() ai_answer = result['choices'][0]['message']['content'].strip() print(f"AI二次验证结果: {idiom} -> {ai_answer}") if ai_answer in ["是", "是的", "对", "正确", "是成语"]: return True, "AI验证通过" except Exception as e: print(f"二次验证失败: {e}") # 多次验证失败 return False, "成语不存在" except Exception as e: print(f"AI验证失败: {e}") # AI验证失败,使用兜底验证 if len(idiom) == 4 and all('\u4e00' <= c <= '\u9fff' for c in idiom): return True, "四字短语验证通过" else: return False, "成语不存在" else: # 未配置API密钥,使用兜底验证 if len(idiom) == 4 and all('\u4e00' <= c <= '\u9fff' for c in idiom): return True, "四字短语验证通过" else: return False, "成语不存在" # 获取随机成语 def get_random_idiom(): """获取随机成语""" return random.choice(list(IDIOMS.keys())) # 使用DeepSeek API生成接龙成语 def get_deepseek_idiom(last_char, history): """使用DeepSeek API生成接龙成语(支持谐音)""" if not DEEPSEEK_API_KEY or DEEPSEEK_API_KEY == "your_api_key_here": # API密钥未配置,返回None return None try: headers = { "Content-Type": "application/json", "Authorization": f"Bearer {DEEPSEEK_API_KEY}" } # 构建系统提示 system_prompt = "你是一个成语接龙专家,擅长根据最后一个字(或谐音)生成接龙成语。\n" system_prompt += "请按照以下要求生成成语:\n" system_prompt += "1. 必须是四字成语\n" system_prompt += "2. 要与前一个成语的最后一个字谐音或同字\n" system_prompt += "3. 不要重复已经使用过的成语\n" system_prompt += "4. 尽量使用常见的成语\n" system_prompt += "5. 只需要返回成语本身,不要添加任何其他内容\n" # 构建用户提示 user_prompt = f"请生成一个以'{last_char}'(或其谐音)开头的成语,不要使用以下成语:{', '.join(history) if history else '无'}" messages = [ {"role": "system", "content": system_prompt}, {"role": "user", "content": user_prompt} ] data = { "model": "deepseek-chat", "messages": messages, "max_tokens": 20, "temperature": 0.7 } # 发送请求 response = requests.post(DEEPSEEK_API_URL, headers=headers, json=data, timeout=10) response.raise_for_status() # 解析响应 result = response.json() idiom = result['choices'][0]['message']['content'].strip() # 验证生成的成语 if validate_idiom(idiom, last_char, history)[0]: return idiom else: # 生成的成语无效,尝试再次生成 print(f"AI生成的成语无效: {idiom}") # 再次调用API尝试生成 try: response = requests.post(DEEPSEEK_API_URL, headers=headers, json=data, timeout=8) response.raise_for_status() result = response.json() idiom = result['choices'][0]['message']['content'].strip() if validate_idiom(idiom, last_char, history)[0]: return idiom else: return None except Exception as e: print(f"二次生成失败: {e}") return None except Exception as e: print(f"DeepSeek API调用失败: {e}") return None # Streamlit应用 def main(): """成语接龙主应用""" st.title("🤖 智能成语接龙") st.write("与AI进行成语接龙游戏,支持谐音接龙!") # 初始化会话状态 if "game_started" not in st.session_state: st.session_state.game_started = False if "current_idiom" not in st.session_state: st.session_state.current_idiom = "" if "history" not in st.session_state: st.session_state.history = [] if "game_over" not in st.session_state: st.session_state.game_over = False if "score" not in st.session_state: st.session_state.score = 0 if "error" not in st.session_state: st.session_state.error = "" if "ai_score" not in st.session_state: st.session_state.ai_score = 0 # 游戏设置 col1, col2 = st.columns(2) with col1: game_mode = st.selectbox("游戏模式", ["人机对战", "双人对战"], index=0) with col2: difficulty = st.selectbox("难度", ["简单", "中等", "困难"], index=0) # 开始游戏 if not st.session_state.game_started: if st.button("开始游戏"): # 初始化游戏状态 st.session_state.game_started = True st.session_state.game_over = False st.session_state.history = [] st.session_state.score = 0 st.session_state.ai_score = 0 st.session_state.error = "" # 生成第一个成语(仅使用本地成语库) first_idiom = get_random_idiom() st.session_state.current_idiom = first_idiom st.session_state.history.append(first_idiom) st.success(f"游戏开始!第一个成语是:**{first_idiom}**") # 游戏进行中 if st.session_state.game_started and not st.session_state.game_over: # 显示当前成语 st.subheader(f"当前成语:**{st.session_state.current_idiom}**") last_char = st.session_state.current_idiom[-1] st.write(f"请接:**{last_char}**(支持谐音)") # 用户输入 user_input = st.text_input("请输入接龙成语:", key="user_input") if st.button("提交"): if user_input: # 验证用户输入 is_valid, message = validate_idiom(user_input, last_char, st.session_state.history) if is_valid: # 验证通过,更新游戏状态 st.session_state.history.append(user_input) st.session_state.score += 1 st.success(f"回答正确!**{user_input}**") # 检查是否为双人对战 if game_mode == "人机对战": # AI接龙 st.write("🤖 AI正在思考...") ai_idiom = get_deepseek_idiom(user_input[-1], st.session_state.history) if ai_idiom: st.session_state.history.append(ai_idiom) st.session_state.ai_score += 1 st.session_state.current_idiom = ai_idiom st.info(f"🤖 AI回答:**{ai_idiom}**") else: # AI无法接龙,游戏结束 st.session_state.game_over = True st.success(f"游戏结束!AI无法接龙,你赢了!") st.balloons() else: # 验证失败 st.error(f"错误:{message}") st.session_state.error = message else: st.error("请输入成语") # 显示游戏状态 st.sidebar.title("游戏状态") st.sidebar.write(f"当前分数:{st.session_state.score}") if game_mode == "人机对战": st.sidebar.write(f"AI分数:{st.session_state.ai_score}") st.sidebar.write(f"已接龙:{len(st.session_state.history)} 个成语") # 显示历史记录 if st.sidebar.checkbox("显示历史记录"): st.sidebar.write("历史接龙:") for i, idiom in enumerate(st.session_state.history): if i % 2 == 0: st.sidebar.write(f"{i+1}. 🧑 **{idiom}**") else: st.sidebar.write(f"{i+1}. 🤖 **{idiom}**") # 游戏结束 if st.session_state.game_over: st.subheader("游戏结束!") st.write(f"你的分数:{st.session_state.score}") if game_mode == "人机对战": st.write(f"AI分数:{st.session_state.ai_score}") st.write(f"总共接龙:{len(st.session_state.history)} 个成语") if st.button("重新开始"): # 重置游戏状态 st.session_state.game_started = False st.session_state.current_idiom = "" st.session_state.history = [] st.session_state.game_over = False st.session_state.score = 0 st.session_state.error = "" st.session_state.ai_score = 0 st.experimental_rerun() # 未开始游戏 if not st.session_state.game_started: st.write("---") st.info("📝 游戏规则:") st.write("1. 输入以当前成语最后一个字(或谐音)开头的成语") st.write("2. 成语不能重复使用") st.write("3. 支持谐音接龙") st.write("4. 游戏由AI生成第一个成语,之后由AI和玩家交替接龙") st.write("5. AI会验证你的回答是否正确") if __name__ == "__main__": main()