用python實現詞語接龍遊戲

2021-09-11 19:07:56 字數 3807 閱讀 3262

由於剛學python沒幾天,又是很簡單的乙個程式,沒有用到物件導向的方法(其實是還沒有學會),通過簡單的過程實現了。幾點說明:

為了防止總是重複的回答,電腦先是在庫中找到全部符合條件的詞語,然後隨機選乙個回答。

採用tkinter作為gui, 曾在vs code下消除了每乙個警告,所以import時把每乙個用到屬性都寫進去了,其實用*號就可以了。

增加了答題記錄,有助於回顧答題過程。

增加對接龍規則一些驗證。

from tkinter import tk, label, button, text, strin**ar, entry, mainloop,

bottom

,end

from tkinter.messagebox import

*import random

def wordinit()

: global word_list, word_len

with

open

("cword.txt"

, mode=

'r', encoding=

'utf-8'

)as word_file:

word_list = word_file.

readlines()

word_len =

len(word_list)

def findword()

: global word_list,word_len,record,first_word, word_result

find_it = false

record =

''print

(word_result)

word_example=

letter = myentry.

get(

)#獲得輸入

iflen(letter)

<=1:

entry=

showinfo

('提示'

,'輸入的詞語太短了'

)#輸入應至少為2個字

return

else

:if first_word:

mytext.

delete

(1.0

,end

)#新開始遊戲時消除記錄

else

:if word_result[

len(word_result)-1

]!=letter[0]

: #檢測是否符合接龍規則

entry=

showinfo

('提示'

,'你這接不上啊,我讀書少,不要騙我。'

)# return

myentry.

delete(0

,end

)#清除輸入框

record+=letter+

' '#增加接龍記錄

mytext.

insert

(end

,letter+

' ')#顯示更新記錄

v2.set(record)

letter=letter[

len(letter)-1

] #取詞語的最後乙個字

for i in

range

(word_len)

:if letter == word_list[i][0

]:word_example.

(word_list[i]

.rstrip

('\n'

))#要去掉每個記錄中最後的換行符

find_it=true

first_word = false

if find_it == false:

v.set(

'對不起,我接不上,你贏了!'

) first_word = true

return

else

: random.

shuffle

(word_example)

word_result=word_example[0]

v.set(word_result)

record+=word_result+

' ' v2.

set(record)

myentry.

insert(0

,word_result[

len(word_result)-1

])mytext.

insert

(end

,word_result+

' ')

return

def closewindow()

: entry =

askyesno

(title=

'確認'

, message=

'實在答不出來,我認輸了。'

)if entry==true:

root.

destroy()

word_list=

#建立漢語常用詞語列表

word_len=

0first_word=true #是否第一次輸入詞語

word_result=

''record=

'' #詞語接龍的記錄

wordinit

() #讀入常用詞語表

root =tk(

) #建立tk視窗

root.

geometry

('1024x768'

) #定義視窗大小

root.

title

('詞語接龍'

)v =

strin**ar()

mylabel =

label

(root,textvariable=v,fg=

'black'

, font=

('宋體',48

))mylabel.

pack()

v.set

('請說出乙個詞:'

)myentry =

entry

(root,fg=

'blue'

, width=

8, font=

('楷體',64

))myentry.

pack()

mybutton =

button

(root,text=

'確認'

,width=

5, font=

('宋體',32

),command=findword)

mybutton.

pack()

mybutton2 =

button

(root,text=

'退出'

,width=

5, font=

('宋體',32

),command=closewindow)

mybutton2.

pack()

v2 =

strin**ar()

mytext=

text

(root, fg=

'yellow'

,bg=

'green'

, font=

('宋體',24

))mytext.

pack

(side=

bottom

)myentry.

focus_set()

mainloop

()

桌面接龍遊戲

問 os為?windows 2003 server 問 這台是你的個人電腦?還是公司或家人共用的電腦?自用問 這張桌布是什麼?從哪裡取得的?沒桌布,簡單就是美 問 更換桌布的頻率高嗎?心血來潮的時候就換一下,多數時候都是空白的。問 桌面上有幾多個icon?沒幾個,在家比較整齊一些,不像在單位的。問 ...

桌面接龍遊戲

問 os為?winxp 問 這台是你的個人電腦?還是公司或家人共用的電腦?公司問 這張桌布是什麼?從哪裡取得的?網上找到的一堆windows桌面主題中自帶的 問 更換桌布的頻率高嗎?幾乎不換 問 桌面上有幾多個icon?常用的,大概10多個吧 問 一堆檔案和捷徑放得亂七八糟的桌面,你看得下去嗎?正在...

1051 接龍遊戲

時間限制 1 s 空間限制 128000 kb 題目等級 鑽石 diamond description 給出了n個單詞,已經按長度排好了序。如果某單詞i是某單詞j的字首,i j算一次接龍 兩個相同的單詞不能算接龍 你的任務是 對於輸入的單詞,找出最長的龍。輸入描述 input description...