首页
/
每日頭條
/
圖文
/
我們來聊聊成語接龍
我們來聊聊成語接龍
更新时间:2025-12-24 11:00:02

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

我們來聊聊成語接龍(成語接龍敢玩嘛)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
推荐阅读
唐氏兒是不是長得都一樣的
唐氏兒是不是長得都一樣的
本文由護芽媽媽原創,歡迎個人轉發和分享常言道:“一母生九子,子子各不同”,說的就是即使是一母同胞的兄弟姐妹,也會在各個方面上不同。從生物學上來講,是基因的變異特性,使得每個生物都會自己獨特的性狀。就像那句話:“世界上沒有兩片相同的葉子”,同...
2025-12-24
創業初期應該怎樣注冊公司
創業初期應該怎樣注冊公司
現在,越來越多的人加入到創業大軍中。很多第一次創業的老闆們,有了一個創業方向或一個好項目,卻可能對如何展開實際經營摸不着頭腦,看着網上五花八門又複雜無比的資料,隻想大喊一句:我太難了!創客君來告訴你,創業的第一步,就是要成立一家公司規範經營...
2025-12-24
大學專業工科和理科的區别
大學專業工科和理科的區别
一、學習方向不同理科注重于理字,而理又是道理的意思,所以理科是屬于基礎科學的範疇,像我們平時學習的數學、物理、生物、化學具有專業知識,而且基本上隻存在于理論知識的範疇。到了大學期間理科同樣是注重理論知識的學習,相關對應的專業有:電子信息科學...
2025-12-24
和暧昧對象聊天到半夜兩點
和暧昧對象聊天到半夜兩點
開始總是分分鐘都妙不可言暧昧心動的瞬間最是讓人上頭感受一下網友們“跟對象最暧昧上頭的聊天“這誰看了不迷糊啊事事有回應▼好喜歡這種把小心思說出來的感覺▼極限拉扯▼(狗糧)行噎死我坐噎死我▼能看出來男生當時很上頭▼打直球真的很讓人心動▼聰明的獵...
2025-12-24
哪種多肉不怕曬不怕淋雨不怕凍
哪種多肉不怕曬不怕淋雨不怕凍
多肉是一種超級可愛的植物,很多人都喜歡在家裡養一些,少則一兩盆,多則幾十盆,上百盆,有些花友家裡隻養各種多肉,肉肉養好了,真的很好看,各種顔色,各種美,雖然個頭不大,但是卻美的獨特,讓人越看越喜歡。喜歡養多肉的人,進入5月之後,就開始各種忙...
2025-12-24
Copyright 2023-2025 - www.tftnews.com All Rights Reserved