diff --git a/HNS/Excercises/ShipCraft/Переделка/ShipField.py b/HNS/Excercises/ShipCraft/Переделка/ShipField.py index d4442c8..0501ff8 100644 --- a/HNS/Excercises/ShipCraft/Переделка/ShipField.py +++ b/HNS/Excercises/ShipCraft/Переделка/ShipField.py @@ -241,11 +241,14 @@ class ShipField: else: self.ship_direction = ShipDirection.VERTICAL - def toggle_field_mode(self): - if self.field_mode == ShipMode.PUT: - self.field_mode = ShipMode.SHOOT - else: - self.field_mode = ShipMode.PUT + def set_field_mode(self, value): + if value is None: + return + + if type(value) is not ShipMode: + return + + self.field_mode = value def print_field(self): print(self.ships) diff --git a/HNS/Excercises/ShipCraft/Переделка/__pycache__/ShipField.cpython-311.pyc b/HNS/Excercises/ShipCraft/Переделка/__pycache__/ShipField.cpython-311.pyc index 4ed20c5..e74b867 100644 Binary files a/HNS/Excercises/ShipCraft/Переделка/__pycache__/ShipField.cpython-311.pyc and b/HNS/Excercises/ShipCraft/Переделка/__pycache__/ShipField.cpython-311.pyc differ diff --git a/HNS/Excercises/ShipCraft/Переделка/main.py b/HNS/Excercises/ShipCraft/Переделка/main.py index ef74718..0c7bb9d 100644 --- a/HNS/Excercises/ShipCraft/Переделка/main.py +++ b/HNS/Excercises/ShipCraft/Переделка/main.py @@ -4,6 +4,7 @@ import time from tkinter import * from tkinter import filedialog from ShipView import ShipView +from ShipMode import ShipMode from ShipField import ShipField from GameMode import GameMode @@ -113,7 +114,7 @@ def next_game_mode(): elif game_mode == GameMode.BATTLE: game_mode = GameMode.END - game_mode_stringvar.set(str(game_mode)) + update_game_mode() def prev_game_mode(): @@ -126,6 +127,26 @@ def prev_game_mode(): elif game_mode == GameMode.PLAN: game_mode = GameMode.MENU + update_game_mode() + + +def update_game_mode(): + global game_mode + + if game_mode == GameMode.MENU: + my_view.ship_field.set_field_mode(ShipMode.INACTIVE) + enemy_view.ship_field.set_field_mode(ShipMode.INACTIVE) + + elif game_mode == GameMode.PLAN: + my_view.ship_field.set_field_mode(ShipMode.PUT) + enemy_view.ship_field.set_field_mode(ShipMode.INACTIVE) + elif game_mode == GameMode.BATTLE: + my_view.ship_field.set_field_mode(ShipMode.INACTIVE) + enemy_view.ship_field.set_field_mode(ShipMode.SHOOT) + elif game_mode == GameMode.END: + my_view.ship_field.set_field_mode(ShipMode.INACTIVE) + enemy_view.ship_field.set_field_mode(ShipMode.INACTIVE) + game_mode_stringvar.set(str(game_mode))