diff --git a/HNS/Excercises/Battle Ship/main.py b/HNS/Excercises/Battle Ship/main.py new file mode 100644 index 0000000..d3b482e --- /dev/null +++ b/HNS/Excercises/Battle Ship/main.py @@ -0,0 +1,53 @@ +from tkinter import * # имортирую модуль +from tkinter import messagebox # сообщение для закрытия нашей игры +import time # импортируем модуль тайм + +tk = Tk() # создаю обьект +app_running = True # создаю переменную которая будет отслеживать что наше приложение работает + +size_canvas_x = 600 # создаю стороны нашего окна +size_canvas_y = 600 +s_x = s_y = 10 # размер игрового поля +step_x = size_canvas_x // s_x # шаг отрисовки наших лини по горизонтали +step_y = size_canvas_y // s_y # тоже самое по вертикили +size_canvas_x = step_x * s_x # коректирую поля челочисленным делением +size_canvas_y = step_y * s_y # коректирую поля челочисленным делением + + + +def on_closing(): # создаю функцию на момент закрытия + global app_running # передаем значение + if messagebox.askokcancel('Выход из игры', + 'Хотите выйти из игры?'): # задаем вопрос на закрытие окна (если ДА тогда окно закрываеться) + app_running = False # тогда наша переменная получает новое булевое значение + tk.destroy() # закрываем приложение + + +tk.protocol('WM_DELETE_WINDOW', + on_closing) # определяю что я делаю на момент закрытия окна и какую функцию она будет выполнять +tk.title('Игра Морской Бой') # определяю параметры нашего окна +tk.resizable(0, 0) # делаю так чтобы окно нельзя было менять +tk.wm_attributes('-topmost', 1) # создаю атребут чтобы наше окно было по верх всех окон +canvas = Canvas(tk, width=size_canvas_x, height=size_canvas_y, bd=0, + highlightthickness=0) # создаю общию картину приложения - задаю ширину и высоту +canvas.create_rectangle(0, 0, size_canvas_x, size_canvas_y, + fill='white') # задаю прямоугольную форму окна и цвет - (белый) но в данном случае это квадрат так как стороны одинаковы!) +canvas.pack() # за пакуем наше оконо для игры +tk.update() # обновляем наше окно + + +def draw_tabel(): # создаю фукцию которая будет рисовать нам поле + for i in range(0, s_x + 1): # создаю цилк который отрисует нашу линию по х + canvas.create_line(step_x * i, 0, step_x * i, size_canvas_y) + for i in range(0, s_y + 1): # содаю цикл который отрисует нашу линию по y + canvas.create_line(0, step_y * i, size_canvas_x, step_y * i) + + +draw_tabel() + + +while app_running: # создем цикл для нашей игры + if app_running: # если наша переменная еще запущена + tk.update_idletasks() # тогда мы будем обновлять наш window + tk.update() + time.sleep(0.005)