Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wiseplat
GitHub Repository: wiseplat/python-code
Path: blob/master/python-igra-tetris/main_lesson_3.py
5925 views
1
from tkinter import *
2
from tkinter import messagebox
3
from random import choice, randrange
4
5
W, H = 10, 20
6
TILE = 45
7
GAME_RES = W * TILE, H * TILE
8
RES = 750, 940
9
FPS = 60
10
11
12
def on_closing():
13
if messagebox.askokcancel("Выход из приложения", "Хотите выйти из приложения?"):
14
tk.destroy()
15
16
17
tk = Tk()
18
tk.protocol("WM_DELETE_WINDOW", on_closing)
19
tk.title("Tetris")
20
tk.resizable(0, 0)
21
tk.wm_attributes("-topmost", 1)
22
#tk.iconbitmap("bomb-3175208_640.ico")
23
24
canvas = Canvas(tk, width=RES[0], height=RES[1], bg="red", highlightthickness=0)
25
canvas.pack()
26
27
img_obj1 = PhotoImage(file="img/bg.png")
28
canvas.create_image(0, 0, anchor=NW, image=img_obj1)
29
30
img_obj2 = PhotoImage(file="img/bg2.png")
31
canvas.create_image(20, 20, anchor=NW, image=img_obj2)
32
33
grid = [canvas.create_rectangle(x * TILE, y * TILE, x * TILE+TILE, y * TILE+TILE) for x in range(W) for y in range(H)]
34
for item in grid:
35
canvas.move(item, 20, 20)
36
37
score = 0
38
record = "0"
39
40
canvas.create_text(505, 30,text="TETRIS", font=("WiGuru 2", 45),fill="red", anchor=NW)
41
canvas.create_text(535, 780,text="score:", font=("WiGuru 2", 40),fill="white", anchor=NW)
42
canvas.create_text(550, 840,text=str(score), font=("WiGuru 2", 40),fill="white", anchor=NW)
43
canvas.create_text(525, 650,text="record:", font=("WiGuru 2", 40),fill="white", anchor=NW)
44
canvas.create_text(550, 710,text=record, font=("WiGuru 2", 40),fill="gold", anchor=NW)
45
46
get_color = lambda : (randrange(30, 256), randrange(30, 256), randrange(30, 256))
47
48
def rgb_to_hex(rgb):
49
return '#%02x%02x%02x' % rgb
50
51
print(rgb_to_hex(get_color()))
52
53
54
for item in grid:
55
canvas.itemconfigure(item, fill=rgb_to_hex(get_color()))
56
57
# for item in grid:
58
# canvas.itemconfigure(item, fill="")
59
60
tk.mainloop()
61
62