由於剛學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...