From d89ebc511ee662aedddba0be7b80dbf02245c522 Mon Sep 17 00:00:00 2001 From: ehermakov Date: Sun, 23 Jun 2024 19:34:10 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D1=8B=20=D0=B3?= =?UTF-8?q?=D0=B5=D0=B9=D0=BC=20=D0=BC=D0=BE=D1=83=D0=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HNS/Excercises/ShipCraft/Переделка/main.py | 45 +++++++++++++++++++--- 1 file changed, 39 insertions(+), 6 deletions(-) diff --git a/HNS/Excercises/ShipCraft/Переделка/main.py b/HNS/Excercises/ShipCraft/Переделка/main.py index 6f5cafc..ef74718 100644 --- a/HNS/Excercises/ShipCraft/Переделка/main.py +++ b/HNS/Excercises/ShipCraft/Переделка/main.py @@ -7,9 +7,9 @@ from ShipView import ShipView from ShipField import ShipField from GameMode import GameMode -game_mode = GameMode.MENU active_view = {} + def create_view(window, col_offset=0, row_offset=0): field = ShipField() buttons = [] @@ -63,6 +63,7 @@ def right_button_click(view): view.ship_field.toggle_ship_direction() colorize(view) + def button_enter(view, row, col): global active_view active_view = view @@ -85,7 +86,6 @@ def savebutton_click(view): def loadbutton_click(view): - file_path = filedialog.askopenfilename(filetypes=[('JSON files', '*.json')]) if os.path.isfile(file_path): with open(file_path) as lines: @@ -96,18 +96,49 @@ def loadbutton_click(view): def refresh_remaining_ships_label(view): text = '' - for i in range(1,5): + for i in range(1, 5): count = view.ship_field.ships.count(i) if count > 0: text += f'{"[]" * i}: {count}, ' view.remaining_ship_text.set(text[:-2]) +def next_game_mode(): + global game_mode + + if game_mode == GameMode.MENU: + game_mode = GameMode.PLAN + elif game_mode == GameMode.PLAN: + game_mode = GameMode.BATTLE + elif game_mode == GameMode.BATTLE: + game_mode = GameMode.END + + game_mode_stringvar.set(str(game_mode)) + + +def prev_game_mode(): + global game_mode + + if game_mode == GameMode.END: + game_mode = GameMode.BATTLE + elif game_mode == GameMode.BATTLE: + game_mode = GameMode.PLAN + elif game_mode == GameMode.PLAN: + game_mode = GameMode.MENU + + game_mode_stringvar.set(str(game_mode)) + + window = Tk() window.title("Ship Craft!") window.geometry('1020x640') window.bind_all('', keypress_handler) +game_mode = GameMode.MENU +game_mode_stringvar = StringVar() + +game_mode_stringvar.set(str(game_mode)) + start_column_my_field = 1 start_row_my_field = 1 @@ -151,11 +182,13 @@ savebutton_enemy.grid(column=start_column_enemy_field, row=load_button_row, colu loadbutton_enemy = Button(window, text='Load', width=20, height=2, command=lambda: loadbutton_click(enemy_view)) loadbutton_enemy.grid(column=start_column_enemy_field + 6, row=load_button_row, columnspan=4) -prev_button = Button(window, text='<=', width=20, height=2) +lbl_game_mode = Label(window, text='', width=50, height=2, textvariable=game_mode_stringvar) +lbl_game_mode.grid(column=start_column_my_field + 6, row=load_button_row + 1, columnspan=10) + +prev_button = Button(window, text='<=', width=20, height=2, command=prev_game_mode) prev_button.grid(column=start_column_my_field, row=load_button_row + 1, columnspan=4) - -next_button = Button(window, text='>=', width=20, height=2) +next_button = Button(window, text='>=', width=20, height=2, command=next_game_mode) next_button.grid(column=start_column_enemy_field + 6, row=load_button_row + 1, columnspan=4) window.mainloop()