首页
/
每日頭條
/
圖文
/
我們來聊聊成語接龍
我們來聊聊成語接龍
更新时间:2025-07-06 07:38:40

我們來聊聊成語接龍?"胸藏文墨懷如谷,腹有詩書氣自華" ——《和董傳留别》,今天小編就來說說關于我們來聊聊成語接龍?下面更多詳細答案一起來看看吧!

我們來聊聊成語接龍(成語接龍敢玩嘛)1

我們來聊聊成語接龍

導語

"胸藏文墨懷如谷,腹有詩書氣自華"。 ——《和董傳留别》

成語接龍是中華民族傳統的文字遊戲。

它曆史悠久,是傳統文字、文化、文明的一個縮影,也是老少皆宜的民間文化娛樂活動。

成語接龍:"龍騰虎躍,該你了!" 什麼?你立刻接上了「躍馬彎弓」?

确認過眼神,是高手沒錯了。 Hi~我是木木子,又見面了哇! 今天我帶來了新技能解鎖,沒錯,就是:

「成語接龍」

據說,跟我玩遊戲的朋友偷偷作弊,拿了本《現代漢語詞典》要跟我大戰三百回合。

最後發現,我說的每個成語她都忍不住要去查一下啊哈哈哈!!!小編亂入:我的天呐,奇怪得知

是成倍增長了!

​​

認慫? 我會認慫嗎?! 不存在的.

看我寫一款成語接龍小程序,分分鐘秒殺你~快來和我「成語接龍」吧~

正文

在這款成語接龍小遊戲中,你會學到一些「新成語」,能邊玩兒邊學成語,最重要的還是能接觸一款

編程,在玩兒中進步學習,成就感滿滿,又能學知識,你有閑暇時,跟隔壁老王可以一直玩一直玩哈

哈哈~

1) 遊戲規則

下面我簡單說說「成語接龍」遊戲的基本規則,你很熟悉可以跳過這段,不熟悉就仔細看看:

①用四字成語的最後一個字起頭,接出下一句成語,由此不斷延伸;

②成語尾首相接的字,可以是同一個字,也可以是同音的字;

③一場遊戲中,不應出現重複成語。

【舉例】 「海枯石爛」→「爛醉如泥」→「泥牛入海」 ×不能接「海枯石爛」(出現重複) √可以接「海納百川」

是不是超級簡單?考驗詞彙儲備量的時候到了~

2) 正式敲代碼2.1 模塊導入

import os import sys import random from PyQt5.QtGui import * from PyQt5.QtWidgets import *

2.2 讀取txt數據

self.idiom_data, self.valid_idioms = self.readData('data/data.txt') self.ai_answer = None

2.3 界面設置

self.setWindowTitle('成語接龍小程序-就差你了!') self.setWindowIcon(QIcon('data/02.png')) self.setFixedSize(600, 200) self.user_input_label = QLabel('我方:') self.user_input_edit = QLineEdit() self.user_input_button = QPushButton('确定') self.ai_input_label = QLabel('電腦方:') self.ai_input_edit = QLineEdit() self.restart_button = QPushButton('重新開始') self.user_explain_label = QLabel('我方成語釋義:') self.user_explain_edit = QLineEdit() self.ai_explain_label = QLabel('電腦方成語釋義:') self.ai_explain_edit = QLineEdit() # 布局 self.grid = QGridLayout() self.grid.setSpacing(12) self.grid.addWidget(self.user_input_label, 0, 0) self.grid.addWidget(self.user_input_edit, 0, 1) self.grid.addWidget(self.user_input_button, 0, 2) self.grid.addWidget(self.user_explain_label, 1, 0) self.grid.addWidget(self.user_explain_edit, 1, 1, 1, 2) self.grid.addWidget(self.ai_input_label, 2, 0) self.grid.addWidget(self.ai_input_edit, 2, 1) self.grid.addWidget(self.restart_button, 2, 2) self.grid.addWidget(self.ai_explain_label, 3, 0) self.grid.addWidget(self.ai_explain_edit, 3, 1, 1, 2) self.setLayout(self.grid) # 按鍵綁定 self.user_input_button.clicked.connect(self.airound) self.restart_button.clicked.connect(self.restart)

2.4 電腦接龍

def airound(self): idiom = self.user_input_edit.text() idiom = idiom.strip() if (not self.isvalid(idiom)) or (self.ai_answer and idiom[0] != self.ai_answer[0][-1]): QMessageBox.warning(self, '成語輸入錯誤', '你輸入的成語不對哦, 不可以耍小聰明哒!', QMessageBox.Yes | QMessageBox.No) else: self.user_explain_edit.setText('讀音: %s; 含義: %s' % (self.valid_idioms[idiom][0], self.valid_idioms[idiom][1])) if idiom[-1] in self.idiom_data: answers = self.idiom_data[idiom[-1]] answer = random.choice(answers) self.ai_answer = answer.copy() self.ai_input_edit.setText(self.ai_answer[0]) self.ai_explain_edit.setText('讀音: %s; 含義: %s' % (self.valid_idioms[answer[0]][0], self.valid_idioms[answer[0]][1])) else: QMessageBox.information(self, '你赢啦', '電腦都接不上你的成語, 你太厲害啦!', QMessageBox.Yes | QMessageBox.No)

2.5 重新開始新遊戲

def restart(self): self.ai_answer = None self.ai_input_edit.clear() self.ai_explain_edit.clear() self.user_input_edit.clear() self.user_explain_edit.clear()

2.6 成語是否合法

def isvalid(self, idiom): return (idiom in self.valid_idioms)

2.7 讀取成語的數據

def readData(self, filepath): fp = open(filepath, 'r', encoding='utf-8') idiom_data = {} valid_idioms = {} for line in fp.readlines(): line = line.strip() if not line: continue item = line.split('\t') if len(item) != 3: continue if item[0][0] not in idiom_data: idiom_data[item[0][0]] = [item] else: idiom_data[item[0][0]].append(item) valid_idioms[item[0]] = item[1:] return idiom_data, valid_idioms

2.8 附完整的項目源碼

''' 小程序名: 成語接龍 源碼基地見 ''' import os import sys import random from PyQt5.QtGui import * from PyQt5.QtWidgets import * '''成語接龍''' class IdiomSolitaire(QWidget): def __init__(self, parent=None, **kwargs): super(IdiomSolitaire, self).__init__(parent) # 讀取數據 self.idiom_data, self.valid_idioms = self.readData('data/data.txt') self.ai_answer = None # 定義界面 self.setWindowTitle('成語接龍小程序-就差你了!') self.setWindowIcon(QIcon('data/02.png')) self.setFixedSize(600, 200) self.user_input_label = QLabel('我方:') self.user_input_edit = QLineEdit() self.user_input_button = QPushButton('确定') self.ai_input_label = QLabel('電腦方:') self.ai_input_edit = QLineEdit() self.restart_button = QPushButton('重新開始') self.user_explain_label = QLabel('我方成語釋義:') self.user_explain_edit = QLineEdit() self.ai_explain_label = QLabel('電腦方成語釋義:') self.ai_explain_edit = QLineEdit() # 布局 self.grid = QGridLayout() self.grid.setSpacing(12) self.grid.addWidget(self.user_input_label, 0, 0) self.grid.addWidget(self.user_input_edit, 0, 1) self.grid.addWidget(self.user_input_button, 0, 2) self.grid.addWidget(self.user_explain_label, 1, 0) self.grid.addWidget(self.user_explain_edit, 1, 1, 1, 2) self.grid.addWidget(self.ai_input_label, 2, 0) self.grid.addWidget(self.ai_input_edit, 2, 1) self.grid.addWidget(self.restart_button, 2, 2) self.grid.addWidget(self.ai_explain_label, 3, 0) self.grid.addWidget(self.ai_explain_edit, 3, 1, 1, 2) self.setLayout(self.grid) # 按鍵綁定 self.user_input_button.clicked.connect(self.airound) self.restart_button.clicked.connect(self.restart) '''電腦接龍''' def airound(self): idiom = self.user_input_edit.text() idiom = idiom.strip() if (not self.isvalid(idiom)) or (self.ai_answer and idiom[0] != self.ai_answer[0][-1]): QMessageBox.warning(self, '成語輸入錯誤', '你輸入的成語不對哦, 不可以耍小聰明哒!', QMessageBox.Yes | QMessageBox.No) else: self.user_explain_edit.setText('讀音: %s; 含義: %s' % (self.valid_idioms[idiom][0], self.valid_idioms[idiom][1])) if idiom[-1] in self.idiom_data: answers = self.idiom_data[idiom[-1]] answer = random.choice(answers) self.ai_answer = answer.copy() self.ai_input_edit.setText(self.ai_answer[0]) self.ai_explain_edit.setText('讀音: %s; 含義: %s' % (self.valid_idioms[answer[0]][0], self.valid_idioms[answer[0]][1])) else: QMessageBox.information(self, '你赢啦', '電腦都接不上你的成語, 你太厲害啦!', QMessageBox.Yes | QMessageBox.No) '''重新開始''' def restart(self): self.ai_answer = None self.ai_input_edit.clear() self.ai_explain_edit.clear() self.user_input_edit.clear() self.user_explain_edit.clear() '''檢測成語是否合法''' def isvalid(self, idiom): return (idiom in self.valid_idioms) '''讀取成語數據''' def readData(self, filepath): fp = open(filepath, 'r', encoding='utf-8') idiom_data = {} valid_idioms = {} for line in fp.readlines(): line = line.strip() if not line: continue item = line.split('\t') if len(item) != 3: continue if item[0][0] not in idiom_data: idiom_data[item[0][0]] = [item] else: idiom_data[item[0][0]].append(item) valid_idioms[item[0]] = item[1:] return idiom_data, valid_idioms '''run''' if __name__ == '__main__': app = QApplication(sys.argv) client = IdiomSolitaire() client.show() sys.exit(app.exec_())

3) 效果展示3.1 成語:龍騰虎躍 Part 1效果

​3.2 成語:山清水秀 Part 2效果

​總結

成語接龍小測試:看看大家的成語量詞彙是不是夠多吖~哈哈哈 大家順着上一位地接下去,看接到幾樓呀?!文章彙總裡面更多類型的遊戲等你來學習哈~

⛳完整的免費源碼領取處:

如需完整的項目源碼 素材源碼基地見:#私信小編06#即可獲取免費的福利!

你們的支持是我最大的動力!!記得三連哦~mua 歡迎大家閱讀往期的文章哦~

文章彙總——

Python—2021 |已有文章彙總 | 持續更新,直接看這篇就夠了~

Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
魔界大戰困難單人門檻怎麼打(魔界大戰超詳細攻略)
魔界大戰困難單人門檻怎麼打(魔界大戰超詳細攻略)
  魔界大戰就要更新了,為了讓各位能更快的打進魔界大戰副本裡,這裡提前給各位準備了魔界大戰所有BOSS的攻略,快來看看吧!   入場介紹      角色等級達到95級即可選擇魔界大戰頻道進入   頻道進入無需完成普雷主線任務和之後的主線任務(英雄模式為DPL型式,不掉落CP護石材料)         完成魔界大戰主線任務後會出現外傳任務:[護石]未知的石頭、...
2025-07-06
人過四十後看淡簡單的生活(人到四十以後隻有)
人過四十後看淡簡單的生活(人到四十以後隻有)
     塵世間太多的情感,總是虛無缥缈,如水中之月,霧裡看花,追不到,摸不着,守不住,又放不下。   深陷紅塵的我們,常常會迷失在塵世之中,行色匆匆的專注趕路,卻忘了自己,也忘了看看沿途的風景。   一晃,已過而立之年,步入了不惑之年,此時,沉穩,從容才是大境界。   俗話說:四十不惑。過了四十,哪些事情應該堅持,哪些事情應該扔掉,心裡應該有數了。   人...
2025-07-06
如何走出人生規劃的誤區(自控力和對周圍的規劃能力)
如何走出人生規劃的誤區(自控力和對周圍的規劃能力)
     今天我們接着學《弟子規》,一晃馬上要學完了,也就還有那麼兩三天了,昨天我們講了“墨磨偏,心不端,字不敬,心先病。”   我覺得我們現在大家推崇的匠人精神應該是最佳體現了,那種凝神靜氣,然後把手中的小事認真的做好,那麼在大方向上是為大家忘記名利,把手中的事做得紮紮實實,這就是道的具體體現。   今天我們學習的這句話叫“列典籍,有定處,讀看畢,還原處。...
2025-07-06
剪映教學新手入門從零開始(小白學剪映剪映入門學習)
剪映教學新手入門從零開始(小白學剪映剪映入門學習)
  #初學剪輯# #小白學習自媒體##剪映入門#各位友友們好!我寫這個微頭條也是希望更多的新手小白容易上手,其實這個剪輯軟件并不難學習。主要是學會使用之後的運用技巧和創作玩法。同樣的功能可以不同精彩效果的作品,有些可以疊加,有些可以組合,有些可以調換順序等,主要看個人的創意思維。   廢話不多說,下面直接上圖。   1、創作按鍵      大家打開剪映...
2025-07-06
冬季寒潮是冷鋒還是反氣旋(寒潮是反氣旋還是冷鋒)
冬季寒潮是冷鋒還是反氣旋(寒潮是反氣旋還是冷鋒)
  答:   寒潮:大範圍的強烈的冷空氣活動。侵襲我國的寒潮來自亞歐大陸上的冷高壓活動。故,寒潮是反氣旋。   冷鋒:冷空氣向暖空氣方向移動的鋒。冬季,形成于蒙古、西伯利亞的強大的冷高壓經常活動,并常常南下進入我國,形成寒潮。此時,冷空氣向暖空氣方向移動。故,寒潮是冷鋒。   寒潮屬于天氣現象,且屬于一種災害天氣現象。反氣旋、冷鋒屬于天氣系統。非要把兩挂上鈎...
2025-07-06
Copyright 2023-2025 - www.tftnews.com All Rights Reserved