-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgameGUI.py
116 lines (106 loc) · 4.21 KB
/
gameGUI.py
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
import random
import tkinter
import numpy as np
size= 4
root = tkinter.Tk()
root.title("Sliding Tile")
array_num = np.arange(size * size)
num_list = array_num.tolist()
num_list.append(' ')
num_list.remove(0)
T = num_list
T2 = np.reshape(num_list, (-1, size))
random.shuffle(num_list)
T.append(' ')
T.remove(' ')
a = num_list.index(' ')
ec = a % size
er = int(a / size)
T = np.reshape(num_list, (-1, size))
global moves
moves=0
def update(event):
for i in range(size):
for j in range(size):
if T[i][j]!=' ':
blank = tkinter.Label(root, text=T[i][j],borderwidth=1, width=5, height=5, fg="white",bg="#32a895",
font=('Monova', 25),padx=0)
blank.grid(row=i, column=j)
else:
blank = tkinter.Label(root, text=T[i][j], borderwidth=1, width=5, height=5, fg="white", bg="white",
font=('Monova', 25), padx=0)
blank.grid(row=i, column=j)
def updateintro():
for i in range(size):
for j in range(size):
if i!=1:
blank = tkinter.Label(root, borderwidth=1, width=5, height=5, fg="white",bg="#32a895", font=('Monova', 25),padx=0)
blank.grid(row=i, column=j)
blank= tkinter.Label(root, borderwidth=1,text="Welcome", width=5, height=5, fg="white", bg="#32a895", font=('Monova', 25), padx=0)
blank.grid(row=1, column=1)
def updatewin():
for i in range(size):
for j in range(size):
if i!=1:
blank = tkinter.Label(root, borderwidth=1, width=5, height=5, fg="white",bg="#32a895", font=('Monova', 25),padx=0)
blank.grid(row=i, column=j)
blank= tkinter.Label(root, borderwidth=1,text="you won", width=5, height=5, fg="white", bg="#32a895", font=('Monova', 25), padx=0)
blank.grid(row=1, column=1)
def gstats():
print(T)
print(T2)
if (T == T2).all():
updatewin()
def mdown(event):
global er,ec
if (er+1)!=size:
blank = tkinter.Label(root, borderwidth=1, text=T[er][ec], width=5, height=5, fg="black", bg="white",
font=('Monova', 25), padx=0)
blank.grid(row=er+1, column=ec)
blank = tkinter.Label(root, borderwidth=1, text=T[er+1][ec], width=5, height=5, fg="white", bg="#32a895",
font=('Monova', 25), padx=0)
blank.grid(row=er, column=ec)
T[er][ec], T[er+1][ec] = T[er+1][ec], T[er][ec]
er = er + 1
gstats()
def mup(event):
global er,ec
blank = tkinter.Label(root, borderwidth=1, text=T[er][ec], width=5, height=5, fg="black", bg="white",
font=('Monova', 25), padx=0)
blank.grid(row=er - 1, column=ec)
blank = tkinter.Label(root, borderwidth=1, text=T[er - 1][ec], width=5, height=5, fg="white", bg="#32a895",
font=('Monova', 25), padx=0)
blank.grid(row=er, column=ec)
T[er][ec], T[er-1][ec] = T[er-1][ec], T[er][ec]
er = er - 1
gstats()
def mleft(event):
global er,ec
blank = tkinter.Label(root, borderwidth=1, text=T[er][ec], width=5, height=5, fg="black", bg="white",
font=('Monova', 25), padx=0)
blank.grid(row=er, column=ec - 1)
blank = tkinter.Label(root, borderwidth=1, text=T[er][ec - 1], width=5, height=5, fg="white", bg="#32a895",
font=('Monova', 25), padx=0)
blank.grid(row=er, column=ec)
T[er][ec], T[er][ec - 1] = T[er][ec - 1], T[er][ec]
ec = ec - 1
gstats()
def mright(event):
global er,ec
if (ec+1)!=size:
blank = tkinter.Label(root, borderwidth=1, text=T[er][ec], width=5, height=5, fg="black", bg="white",
font=('Monova', 25), padx=0)
blank.grid(row=er, column=ec + 1)
blank = tkinter.Label(root, borderwidth=1, text=T[er][ec + 1], width=5, height=5, fg="white", bg="#32a895",
font=('Monova', 25), padx=0)
blank.grid(row=er, column=ec)
T[er][ec], T[er][ec + 1] = T[er][ec + 1], T[er][ec]
ec = ec + 1
gstats()
updateintro()
root.bind('<Return>',update)
root.bind('<Up>',mup)
root.bind('<Down>',mdown)
root.bind('<Left>',mleft)
root.bind('<Right>',mright)
root.mainloop()