Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wiseplat
GitHub Repository: wiseplat/python-code
Path: blob/master/python-igra-morskoy-boy/main_lesson_2.py
5918 views
1
from tkinter import *
2
from tkinter import messagebox
3
import time
4
5
tk = Tk()
6
app_running = True
7
8
size_canvas_x = 600
9
size_canvas_y = 600
10
s_x = s_y = 9 # размер игрового поля
11
step_x = size_canvas_x // s_x # шаг по горизонтали
12
step_y = size_canvas_y // s_y # шаг по вертикали
13
size_canvas_x = step_x * s_x
14
size_canvas_y = step_y * s_y
15
16
menu_x = 250
17
18
19
def on_closing():
20
global app_running
21
if messagebox.askokcancel("Выход из игры", "Хотите выйти из игры?"):
22
app_running = False
23
tk.destroy()
24
25
26
tk.protocol("WM_DELETE_WINDOW", on_closing)
27
tk.title("Игра Морской Бой")
28
tk.resizable(0, 0)
29
tk.wm_attributes("-topmost", 1)
30
canvas = Canvas(tk, width=size_canvas_x + menu_x, height=size_canvas_y, bd=0, highlightthickness=0)
31
canvas.create_rectangle(0, 0, size_canvas_x, size_canvas_y, fill="white")
32
canvas.pack()
33
tk.update()
34
35
36
def draw_table():
37
for i in range(0, s_x + 1):
38
canvas.create_line(step_x * i, 0, step_x * i, size_canvas_y)
39
for i in range(0, s_y + 1):
40
canvas.create_line(0, step_y * i, size_canvas_x, step_y * i)
41
42
43
draw_table()
44
45
46
def button_show_enemy():
47
pass
48
49
50
def button_begin_again():
51
pass
52
53
54
b0 = Button(tk, text="Показать корабли противника", command=button_show_enemy)
55
b0.place(x=size_canvas_x + 20, y=30)
56
57
b1 = Button(tk, text="Начать заново!", command=button_begin_again)
58
b1.place(x=size_canvas_x + 20, y=70)
59
60
while app_running:
61
if app_running:
62
tk.update_idletasks()
63
tk.update()
64
time.sleep(0.005)
65
66