2021年10月27日 星期三

Python-Gui_tkinter 1A2B Game

 使用tkinter做一個1A2B Game,加入enter事件。



 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import tkinter as tk
import random
#設定視窗。
window = tk.Tk()
#設定視窗標題。
window.title('2A1B')
#設定視窗大小。
window.geometry('600x300')
#設定四個亂數不重覆的數字。
Number= [0,1,2,3,4,5,6,7,8,9]
initial = random.sample(Number,4)

#載入Enter事件。
def Enter_key(event):
button_event()
#Button按鈕事件。
def button_event():
#設定1A2B初始值。
A,B=0,0
#取得Entry輸入元件上文字。
Input_number=Entry_1.get()
#清除Entry輸入元件內容。
Entry_1.delete(0,'end')

Gamer_Number=[]
for I in range(0,4):
#擷取變數字串,分割一個一個加到Gamer_Number。
Gamer_Number.append(int(Input_number[I:I+1]))
#判斷4個數字,和答案在同一位置A+1,不同位置B+1。
for AB in range(0,4):
if Gamer_Number[AB]==initial[AB]:
A=A+1
elif Gamer_Number[AB] in initial:
B=B+1
#將幾A幾B的資料,顯在文字方框中。
Game_Number=str(A)+'A'+str(B)+'B :'+str(Input_number)
Text_2.insert(tk.INSERT,Game_Number +'\n')
#判斷A個4表示獲勝。
if A==4 :
Text_2.insert(tk.INSERT,'-----Great-----\n')
Text_2.insert(tk.INSERT,initial)

#設定Label標籤參數(bg背景顏色、font字型格式、width宽度15個字元、高度1個字元)
Label_1 = tk.Label(window,bg='yellow', text='請輸入四個數字:',font=('Arial', 12),width=15,height=1,padx=5)
#設定排版方式在第一排靠左。
Label_1.grid(column=0, row=0,sticky='w')

#設定Entry輸入方框參數(font字型格式、width宽度5個字元)
Entry_1 = tk.Entry(window, font=('Arial', 12),width=5)
#設定排版方式在第二排且離左邊框距離5。
Entry_1.grid(column=0, row=1,padx=5)

#設定Text文字方框參數(font字型格式、width宽度30個字元、高度15個字元)
Text_2 = tk.Text(window, font=('Arial', 12),width=30,height=15)
#設定排版方式在第一排第二列且合併15格。
Text_2.grid(column=1,row=0,rowspan=15)

#設定Button按鈕及觸發事件button_event。
Button_1=tk.Button(window,text='送出', command=button_event)
#設定排版方式在第三排。
Button_1.grid(column=0,row=2)

#建立Enter事件。
window.bind('<Return>',Enter_key)
window.mainloop()

結果:



沒有留言:

張貼留言

Ubuntu-Journalctl查看系統日誌

 近期所使用Ubuntu系統24小時開著,進行跑Python程式使用,但跑個2~3天,排程就無法正常寄信,SSH連線也無法正常連線,經查看後為wifi連線問題,暫先使用腳本排程進行重開wifi。 以下為記錄Journalctl指令。 使用Journalctl來從系統日誌上查看看問...