From bf24d2e582eccbf1e1d567ef5a27bd330c2619b4 Mon Sep 17 00:00:00 2001 From: simon <155122848+simonpotel@users.noreply.github.com> Date: Sun, 1 Jun 2025 12:17:50 +0200 Subject: [PATCH 1/2] upload quadrant editor asset --- assets/Basic_GUI_Bundle/Icons/Edit.png | Bin 0 -> 204408 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 assets/Basic_GUI_Bundle/Icons/Edit.png diff --git a/assets/Basic_GUI_Bundle/Icons/Edit.png b/assets/Basic_GUI_Bundle/Icons/Edit.png new file mode 100644 index 0000000000000000000000000000000000000000..ad5ac53b0b5eadc0f4a741e86862cb8c8d8899d4 GIT binary patch literal 204408 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 literal 0 HcmV?d00001 From b056dbfa7e1e9beffc9e0b6c1991f00bc0612435 Mon Sep 17 00:00:00 2001 From: simon <155122848+simonpotel@users.noreply.github.com> Date: Sun, 1 Jun 2025 13:37:10 +0200 Subject: [PATCH 2/2] feat(new quadrant editor) --- configs/quadrants.json | 866 ++++++++++++++++-- quadrants_editor.py | 5 - src/windows/components/navbar.py | 38 +- src/windows/screens/base_screen.py | 11 +- src/windows/screens/quadrant_editor_screen.py | 752 +++++++++++++++ tools/quadrants_editor/editor.py | 215 ----- tools/quadrants_editor/validator.py | 36 - 7 files changed, 1606 insertions(+), 317 deletions(-) delete mode 100644 quadrants_editor.py create mode 100644 src/windows/screens/quadrant_editor_screen.py delete mode 100644 tools/quadrants_editor/editor.py delete mode 100644 tools/quadrants_editor/validator.py diff --git a/configs/quadrants.json b/configs/quadrants.json index c0bddd8..62cc4a4 100644 --- a/configs/quadrants.json +++ b/configs/quadrants.json @@ -1,56 +1,816 @@ { - "1": [ - [[null, 3], [null, 2], [null, 1], [null, 0]], - [[null, 0], [null, 1], [null, 3], [null, 3]], - [[null, 1], [null, 0], [null, 2], [null, 2]], - [[null, 2], [null, 3], [null, 0], [null, 1]] - ], - "2": [ - [[null, 0], [null, 1], [null, 2], [null, 3]], - [[null, 3], [null, 3], [null, 1], [null, 0]], - [[null, 2], [null, 1], [null, 0], [null, 3]], - [[null, 1], [null, 0], [null, 3], [null, 2]] - ], - "3": [ - [[null, 1], [null, 2], [null, 3], [null, 0]], - [[null, 0], [null, 2], [null, 3], [null, 1]], - [[null, 3], [null, 0], [null, 1], [null, 2]], - [[null, 2], [null, 1], [null, 0], [null, 3]] - ], - "4": [ - [[null, 0], [null, 3], [null, 2], [null, 1]], - [[null, 1], [null, 3], [null, 2], [null, 0]], - [[null, 2], [null, 1], [null, 0], [null, 3]], - [[null, 3], [null, 0], [null, 1], [null, 2]] - ], - "5": [ - [[null, 1], [null, 2], [null, 0], [null, 3]], - [[null, 2], [null, 1], [null, 2], [null, 0]], - [[null, 3], [null, 0], [null, 3], [null, 1]], - [[null, 0], [null, 1], [null, 3], [null, 2]] - ], - "6": [ - [[null, 3], [null, 0], [null, 2], [null, 1]], - [[null, 0], [null, 2], [null, 1], [null, 2]], - [[null, 1], [null, 3], [null, 0], [null, 3]], - [[null, 2], [null, 3], [null, 1], [null, 0]] - ], - "7": [ - [[null, 3], [null, 2], [null, 1], [null, 0]], - [[null, 0], [null, 2], [null, 3], [null, 3]], - [[null, 2], [null, 1], [null, 0], [null, 1]], - [[null, 1], [null, 0], [null, 3], [null, 2]] - ], - "8": [ - [[null, 0], [null, 1], [null, 1], [null, 3]], - [[null, 3], [null, 3], [null, 2], [null, 0]], - [[null, 1], [null, 0], [null, 1], [null, 2]], - [[null, 2], [null, 3], [null, 0], [null, 1]] - ], - "9": [ - [[null, 0], [null, 0], [null, 0], [null, 0]], - [[null, 0], [null, 0], [null, 0], [null, 0]], - [[null, 0], [null, 0], [null, 0], [null, 0]], - [[null, 0], [null, 0], [null, 0], [null, 0]] + "1": [ + [ + [ + null, + 3 + ], + [ + null, + 2 + ], + [ + null, + 1 + ], + [ + null, + 0 + ] + ], + [ + [ + null, + 0 + ], + [ + null, + 1 + ], + [ + null, + 3 + ], + [ + null, + 3 + ] + ], + [ + [ + null, + 1 + ], + [ + null, + 0 + ], + [ + null, + 2 + ], + [ + null, + 2 + ] + ], + [ + [ + null, + 2 + ], + [ + null, + 3 + ], + [ + null, + 0 + ], + [ + null, + 1 + ] + ] + ], + "2": [ + [ + [ + null, + 0 + ], + [ + null, + 1 + ], + [ + null, + 2 + ], + [ + null, + 3 + ] + ], + [ + [ + null, + 3 + ], + [ + null, + 3 + ], + [ + null, + 1 + ], + [ + null, + 0 + ] + ], + [ + [ + null, + 2 + ], + [ + null, + 1 + ], + [ + null, + 0 + ], + [ + null, + 3 + ] + ], + [ + [ + null, + 1 + ], + [ + null, + 0 + ], + [ + null, + 3 + ], + [ + null, + 2 + ] + ] + ], + "3": [ + [ + [ + null, + 1 + ], + [ + null, + 2 + ], + [ + null, + 3 + ], + [ + null, + 0 + ] + ], + [ + [ + null, + 0 + ], + [ + null, + 2 + ], + [ + null, + 3 + ], + [ + null, + 1 + ] + ], + [ + [ + null, + 3 + ], + [ + null, + 0 + ], + [ + null, + 1 + ], + [ + null, + 2 + ] + ], + [ + [ + null, + 2 + ], + [ + null, + 1 + ], + [ + null, + 0 + ], + [ + null, + 3 + ] + ] + ], + "4": [ + [ + [ + null, + 0 + ], + [ + null, + 3 + ], + [ + null, + 2 + ], + [ + null, + 1 + ] + ], + [ + [ + null, + 1 + ], + [ + null, + 3 + ], + [ + null, + 2 + ], + [ + null, + 0 + ] + ], + [ + [ + null, + 2 + ], + [ + null, + 1 + ], + [ + null, + 0 + ], + [ + null, + 3 + ] + ], + [ + [ + null, + 3 + ], + [ + null, + 0 + ], + [ + null, + 1 + ], + [ + null, + 2 + ] + ] + ], + "5": [ + [ + [ + null, + 1 + ], + [ + null, + 2 + ], + [ + null, + 0 + ], + [ + null, + 3 + ] + ], + [ + [ + null, + 2 + ], + [ + null, + 1 + ], + [ + null, + 2 + ], + [ + null, + 0 + ] + ], + [ + [ + null, + 3 + ], + [ + null, + 0 + ], + [ + null, + 3 + ], + [ + null, + 1 + ] + ], + [ + [ + null, + 0 + ], + [ + null, + 1 + ], + [ + null, + 3 + ], + [ + null, + 2 + ] + ] + ], + "6": [ + [ + [ + null, + 3 + ], + [ + null, + 0 + ], + [ + null, + 2 + ], + [ + null, + 1 + ] + ], + [ + [ + null, + 0 + ], + [ + null, + 2 + ], + [ + null, + 1 + ], + [ + null, + 2 + ] + ], + [ + [ + null, + 1 + ], + [ + null, + 3 + ], + [ + null, + 0 + ], + [ + null, + 3 + ] + ], + [ + [ + null, + 2 + ], + [ + null, + 3 + ], + [ + null, + 1 + ], + [ + null, + 0 + ] + ] + ], + "7": [ + [ + [ + null, + 3 + ], + [ + null, + 2 + ], + [ + null, + 1 + ], + [ + null, + 0 + ] + ], + [ + [ + null, + 0 + ], + [ + null, + 2 + ], + [ + null, + 3 + ], + [ + null, + 3 + ] + ], + [ + [ + null, + 2 + ], + [ + null, + 1 + ], + [ + null, + 0 + ], + [ + null, + 1 + ] + ], + [ + [ + null, + 1 + ], + [ + null, + 0 + ], + [ + null, + 3 + ], + [ + null, + 2 + ] + ] + ], + "8": [ + [ + [ + null, + 0 + ], + [ + null, + 1 + ], + [ + null, + 1 + ], + [ + null, + 3 + ] + ], + [ + [ + null, + 3 + ], + [ + null, + 3 + ], + [ + null, + 2 + ], + [ + null, + 0 + ] + ], + [ + [ + null, + 1 + ], + [ + null, + 0 + ], + [ + null, + 1 + ], + [ + null, + 2 + ] + ], + [ + [ + null, + 2 + ], + [ + null, + 3 + ], + [ + null, + 0 + ], + [ + null, + 1 + ] + ] + ], + "9": [ + [ + [ + null, + 0 + ], + [ + null, + 0 + ], + [ + null, + 0 + ], + [ + null, + 0 + ] + ], + [ + [ + null, + 0 + ], + [ + null, + 0 + ], + [ + null, + 0 + ], + [ + null, + 0 + ] + ], + [ + [ + null, + 0 + ], + [ + null, + 0 + ], + [ + null, + 0 + ], + [ + null, + 0 + ] + ], + [ + [ + null, + 0 + ], + [ + null, + 0 + ], + [ + null, + 0 + ], + [ + null, + 0 + ] + ] + ], + "12": [ + [ + [ + null, + 0 + ], + [ + null, + 0 + ], + [ + null, + 2 + ], + [ + null, + 0 + ] + ], + [ + [ + null, + 3 + ], + [ + null, + 1 + ], + [ + null, + 1 + ], + [ + null, + 0 + ] + ], + [ + [ + null, + 3 + ], + [ + null, + 1 + ], + [ + null, + 1 + ], + [ + null, + 2 + ] + ], + [ + [ + null, + 3 + ], + [ + null, + 3 + ], + [ + null, + 2 + ], + [ + null, + 2 + ] + ] + ], + "15": [ + [ + [ + null, + 0 + ], + [ + null, + 0 + ], + [ + null, + 1 + ], + [ + null, + 1 + ] + ], + [ + [ + null, + 0 + ], + [ + null, + 0 + ], + [ + null, + 1 + ], + [ + null, + 1 + ] + ], + [ + [ + null, + 2 + ], + [ + null, + 2 + ], + [ + null, + 3 + ], + [ + null, + 3 + ] + ], + [ + [ + null, + 2 + ], + [ + null, + 2 + ], + [ + null, + 3 + ], + [ + null, + 3 + ] ] + ] } \ No newline at end of file diff --git a/quadrants_editor.py b/quadrants_editor.py deleted file mode 100644 index 984678e..0000000 --- a/quadrants_editor.py +++ /dev/null @@ -1,5 +0,0 @@ -from tools.quadrants_editor.editor import QuadrantEditor - -if __name__ == "__main__": - editor = QuadrantEditor() - editor.run() \ No newline at end of file diff --git a/src/windows/components/navbar.py b/src/windows/components/navbar.py index d8f954e..72c323a 100644 --- a/src/windows/components/navbar.py +++ b/src/windows/components/navbar.py @@ -23,6 +23,7 @@ def __init__(self, screen_width: int, height: int = 50) -> None: menu_icon_path = "assets/Basic_GUI_Bundle/Icons/Icon_Small_WhiteOutline_Menu.png" music_on_icon_path = "assets/Basic_GUI_Bundle/Icons/Icon_Small_WhiteOutline_Music.png" music_off_icon_path = "assets/Basic_GUI_Bundle/Icons/Icon_Small_WhiteOutline_MusicOff.png" + edit_icon_path = "assets/Basic_GUI_Bundle/Icons/Edit.png" button_bg_path = "assets/Basic_GUI_Bundle/ButtonsIcons/IconButton_Small_Blank_Rounded.png" self.home_button = ImageButton( @@ -36,6 +37,17 @@ def __init__(self, screen_width: int, height: int = 50) -> None: icon_path=star_icon_path ) + self.quadrant_editor_button = ImageButton( + self.width - (btn_size * 3) - (padding * 3), + (self.height - btn_size) // 2, + btn_size, + btn_size, + "", + self.open_quadrant_editor, + bg_image_path=button_bg_path, + icon_path=edit_icon_path + ) + self.music_button = ImageButton( self.width - (btn_size * 2) - (padding * 2), (self.height - btn_size) // 2, @@ -62,6 +74,7 @@ def __init__(self, screen_width: int, height: int = 50) -> None: self.home_callback: Optional[Callable] = None self.settings_callback: Optional[Callable] = None + self.quadrant_editor_callback: Optional[Callable] = None def toggle_music(self) -> None: """ @@ -75,9 +88,10 @@ def toggle_music(self) -> None: self.music_button.load_icon() Logger.info("NavBar", f"Music {'muted' if self.music_manager.is_muted else 'unmuted'}") - def set_callbacks(self, home_callback: Optional[Callable] = None, settings_callback: Optional[Callable] = None) -> None: + def set_callbacks(self, home_callback: Optional[Callable] = None, settings_callback: Optional[Callable] = None, quadrant_editor_callback: Optional[Callable] = None) -> None: self.home_callback = home_callback self.settings_callback = settings_callback + self.quadrant_editor_callback = quadrant_editor_callback def home_action(self) -> None: if self.home_callback: @@ -91,13 +105,24 @@ def settings_action(self) -> None: else: Logger.warning("NavBar", "Settings button pressed but no callback set") - def handle_events(self, event: pygame.event.Event) -> None: - self.home_button.handle_event(event) - self.music_button.handle_event(event) - self.settings_button.handle_event(event) + def open_quadrant_editor(self) -> None: + """ + procédure : ouvre l'éditeur de quadrants """ + if self.quadrant_editor_callback: + self.quadrant_editor_callback() + else: + Logger.warning("NavBar", "Quadrant editor button pressed but no callback set") + def handle_event(self, event: pygame.event.Event) -> bool: + handled = False + handled |= self.home_button.handle_event(event) + handled |= self.quadrant_editor_button.handle_event(event) + handled |= self.music_button.handle_event(event) + handled |= self.settings_button.handle_event(event) + return handled def update(self, mouse_pos: Tuple[int, int]) -> None: self.home_button.check_hover(mouse_pos) + self.quadrant_editor_button.check_hover(mouse_pos) self.music_button.check_hover(mouse_pos) self.settings_button.check_hover(mouse_pos) @@ -107,5 +132,6 @@ def draw(self, screen: pygame.Surface) -> None: screen.blit(navbar_surface, (0,0)) self.home_button.draw(screen) + self.quadrant_editor_button.draw(screen) self.music_button.draw(screen) - self.settings_button.draw(screen) \ No newline at end of file + self.settings_button.draw(screen) \ No newline at end of file diff --git a/src/windows/screens/base_screen.py b/src/windows/screens/base_screen.py index b9a408c..5901e9e 100644 --- a/src/windows/screens/base_screen.py +++ b/src/windows/screens/base_screen.py @@ -38,9 +38,16 @@ def setup_navbar(self): theme = self.theme_manager.current_theme Logger.info("BaseScreen", f"Initializing navbar with theme: {theme}") + def quadrant_editor_action(): + from src.windows.screens.quadrant_editor_screen import QuadrantEditorScreen + self.next_screen = QuadrantEditorScreen + self.running = False + Logger.info("BaseScreen", "Redirecting to Quadrant Editor Screen") + self.navbar.set_callbacks( home_callback=self.home_action, - settings_callback=self.menu_action + settings_callback=self.menu_action, + quadrant_editor_callback=quadrant_editor_action ) def setup_ui(self): @@ -78,7 +85,7 @@ def handle_events(self): continue # gérer les événements de la barre de navigation - self.navbar.handle_events(event) + self.navbar.handle_event(event) # gérer les événements de la fenêtre self.handle_screen_events(event) diff --git a/src/windows/screens/quadrant_editor_screen.py b/src/windows/screens/quadrant_editor_screen.py new file mode 100644 index 0000000..fcdba9e --- /dev/null +++ b/src/windows/screens/quadrant_editor_screen.py @@ -0,0 +1,752 @@ +import pygame +import json +from typing import List, Tuple, Optional, Dict, Any +from src.windows.screens.base_screen import BaseScreen +from src.windows.components.image_button import ImageButton +from src.utils.logger import Logger + +class QuadrantEditorScreen(BaseScreen): + """ + classe : gestion de l'éditeur de quadrants du jeu + """ + + COLORS: List[str] = ['red', 'green', 'blue', 'yellow'] + GRID_SIZE: int = 4 + CELL_SIZE: int = 70 + COLOR_MAP: Dict[int, str] = {0: 'red', 1: 'green', 2: 'blue', 3: 'yellow'} + REVERSE_COLOR_MAP: Dict[str, int] = {'red': 0, 'green': 1, 'blue': 2, 'yellow': 3} + FEEDBACK_MESSAGE_DURATION: int = 180 + + UI_CONFIG = { + 'button': { + 'width': 200, + 'height': 35, + 'spacing': 5, + 'text_color': (255, 255, 255), + 'nav_width': 35, + 'image_path': "assets/Basic_GUI_Bundle/ButtonsText/ButtonText_Large_GreyOutline_Square.png" + }, + 'panel': { + 'left_margin': 50, + 'spacing': 10, + 'grid_offset': 70 + }, + 'colors': { + 'background': (30, 30, 30), + 'text': (255, 255, 255), + 'grid_border': (100, 100, 120), + 'instruction': (200, 200, 200), + 'error': (255, 100, 100), + 'success': (100, 255, 100), + 'input_inactive': (200, 200, 200) + } + } + + def __init__(self, width: int = 1280, height: int = 720, title: str = "Ludoria - Quadrant Editor"): + """ + fonction : initialise l'éditeur de quadrants + params : + width - largeur de la fenêtre en pixels + height - hauteur de la fenêtre en pixels + title - titre de la fenêtre + """ + super().__init__(width, height, title) + + self.current_color: str = self.COLORS[0] + self.grid: List[List[Optional[str]]] = [[None for _ in range(self.GRID_SIZE)] for _ in range(self.GRID_SIZE)] + self.quadrants_config: Dict[str, Any] = {} + self.quadrant_names: List[str] = [] + self.selected_quadrant_index: int = 0 + self.save_name: str = "" + + self.color_buttons: List[ImageButton] = [] + self.grid_rects: List[List[pygame.Rect]] = [] + self.load_button: Optional[ImageButton] = None + self.save_button: Optional[ImageButton] = None + self.clear_button: Optional[ImageButton] = None + self.back_button: Optional[ImageButton] = None + self.prev_quadrant_button: Optional[ImageButton] = None + self.next_quadrant_button: Optional[ImageButton] = None + + self.name_input_rect: Optional[pygame.Rect] = None + self.name_input_active: bool = False + + self.title_font: Optional[pygame.font.Font] = None + self.label_font: Optional[pygame.font.Font] = None + self.button_font: Optional[pygame.font.Font] = None + self.input_text_font: Optional[pygame.font.Font] = None + self.info_font: Optional[pygame.font.Font] = None + self.feedback_font: Optional[pygame.font.Font] = None + + self.instruction_text_content: str = "Each color must appear exactly 4 times." + self.instruction_text_surface: Optional[pygame.Surface] = None + self.instruction_text_pos: Tuple[int, int] = (0, 0) + + self.feedback_message: Optional[str] = None + self.feedback_message_surface: Optional[pygame.Surface] = None + self.feedback_message_pos: Tuple[int, int] = (0, 0) + self.feedback_message_timer: int = 0 + self.feedback_message_color: Tuple[int, int, int] = (255, 255, 255) + self.feedback_message_base_y: int = 0 + + self.background_image: Optional[pygame.Surface] = None + + self.setup_fonts() + self.setup_ui_elements() + self.load_quadrants_config() + + def setup_fonts(self): + """ + fonction : initialise les polices de caractères + """ + self.title_font = self.font_manager.get_font(72) + self.label_font = self.font_manager.get_font(24) + self.button_font = self.font_manager.get_font(20) + self.input_text_font = self.font_manager.get_font(22) + self.info_font = self.font_manager.get_font(18) + self.feedback_font = self.font_manager.get_font(22) + + def setup_ui_elements(self): + """ + fonction : initialise les éléments de l'interface utilisateur + """ + self.setup_background() + self.setup_color_buttons() + self.setup_grid() + self.setup_navigation() + self.setup_input_area() + self.setup_action_buttons() + self.setup_instruction_text() + + def setup_background(self): + try: + theme = self.theme_manager.current_theme + bg_path = f"assets/{theme}/background.png" + self.background_image = pygame.image.load(bg_path).convert_alpha() + self.background_image = pygame.transform.scale(self.background_image, (self.width, self.height)) + overlay = pygame.Surface((self.width, self.height), pygame.SRCALPHA) + overlay.fill((0, 0, 0, 120)) + self.background_image.blit(overlay, (0, 0)) + except Exception as e: + Logger.error("QuadrantEditorScreen", f"Failed to load background: {e}") + self.background_image = None + + def setup_color_buttons(self): + btn_config = self.UI_CONFIG['button'] + panel_config = self.UI_CONFIG['panel'] + + current_y = self.navbar_height + 120 + self.colors_label_text = "COLORS:" + self.colors_label_pos = (panel_config['left_margin'], current_y) + current_y += self.label_font.get_height() + panel_config['spacing'] + + self.color_buttons = [] + for i, color_name in enumerate(self.COLORS): + btn = self.create_button( + panel_config['left_margin'], + current_y + i * (btn_config['height'] + btn_config['spacing']), + color_name.upper(), + lambda c=color_name: self.set_current_color(c) + ) + self.color_buttons.append(btn) + + def setup_grid(self): + panel_config = self.UI_CONFIG['panel'] + grid_start_x = panel_config['left_margin'] + self.UI_CONFIG['button']['width'] + panel_config['grid_offset'] + + self.grid_label_text = "GRID:" + self.grid_label_pos = (grid_start_x, self.colors_label_pos[1]) + grid_start_y = self.grid_label_pos[1] + self.label_font.get_height() + panel_config['spacing'] + + self.grid_rects = [] + for r in range(self.GRID_SIZE): + row_rects = [] + for c in range(self.GRID_SIZE): + rect = pygame.Rect( + grid_start_x + c * self.CELL_SIZE, + grid_start_y + r * self.CELL_SIZE, + self.CELL_SIZE, + self.CELL_SIZE + ) + row_rects.append(rect) + self.grid_rects.append(row_rects) + + def setup_navigation(self): + """ + fonction : configure la navigation des quadrants + """ + btn_config = self.UI_CONFIG['button'] + panel_config = self.UI_CONFIG['panel'] + grid_width = self.GRID_SIZE * self.CELL_SIZE + right_panel_x = panel_config['left_margin'] + self.UI_CONFIG['button']['width'] + panel_config['grid_offset'] + grid_width + panel_config['grid_offset'] + + self.quadrant_label_text = "QUADRANT:" + self.quadrant_label_pos = (right_panel_x, self.grid_label_pos[1]) + nav_y = self.quadrant_label_pos[1] + self.label_font.get_height() + panel_config['spacing'] + + self.prev_quadrant_button = self.create_button(right_panel_x, nav_y, "<", self.prev_quadrant, btn_config['nav_width']) + + num_display_x = right_panel_x + btn_config['nav_width'] + panel_config['spacing'] + self.quadrant_num_display_pos = (num_display_x, nav_y + (btn_config['height'] - self.label_font.get_height()) // 2) + + name_display_width = btn_config['width'] - (2 * btn_config['nav_width'] + 2 * panel_config['spacing']) + next_button_x = num_display_x + name_display_width + panel_config['spacing'] + self.next_quadrant_button = self.create_button(next_button_x, nav_y, ">", self.next_quadrant, btn_config['nav_width']) + + load_button_y = nav_y + btn_config['height'] + btn_config['spacing'] + self.load_button = self.create_button(right_panel_x, load_button_y, "LOAD QUADRANT", self.load_selected_quadrant) + + def setup_input_area(self): + btn_config = self.UI_CONFIG['button'] + panel_config = self.UI_CONFIG['panel'] + + name_y = self.load_button.rect.bottom + panel_config['spacing'] * 2 + self.name_label_text = "NAME:" + self.name_label_pos = (self.load_button.rect.x, name_y) + + name_label_width = self.label_font.size(self.name_label_text)[0] + input_x = self.name_label_pos[0] + name_label_width + panel_config['spacing'] + input_width = max(50, btn_config['width'] - name_label_width - panel_config['spacing']) + + self.name_input_rect = pygame.Rect(input_x, name_y, input_width, btn_config['height']) + self.name_input_active = False + + def setup_action_buttons(self): + btn_config = self.UI_CONFIG['button'] + panel_config = self.UI_CONFIG['panel'] + + save_y = self.name_input_rect.bottom + btn_config['spacing'] + self.save_button = self.create_button(self.load_button.rect.x, save_y, "SAVE", self.save_quadrant) + + clear_y = self.height - btn_config['height'] * 2 - btn_config['spacing'] * 2 + self.clear_button = self.create_button(panel_config['left_margin'], clear_y, "CLEAR", self.clear_grid) + + back_y = clear_y + btn_config['height'] + btn_config['spacing'] + self.back_button = self.create_button(panel_config['left_margin'], back_y, "BACK", self.go_back) + + def setup_instruction_text(self): + self.instruction_text_content = "Each color must appear exactly 4 times." + if self.info_font: + self.instruction_text_surface = self.info_font.render( + self.instruction_text_content, + True, + self.UI_CONFIG['colors']['instruction'] + ) + instruction_x = (self.width - self.instruction_text_surface.get_width()) // 2 + instruction_y = self.height - self.instruction_text_surface.get_height() - 15 + self.instruction_text_pos = (instruction_x, instruction_y) + + title_height = self.title_font.get_height() if self.title_font else 72 + self.feedback_message_base_y = self.navbar_height + 20 + title_height + 15 + + def create_button(self, x: int, y: int, text: str, callback, width: Optional[int] = None) -> ImageButton: + """ + fonction : crée un bouton avec les paramètres spécifiés + """ + btn_config = self.UI_CONFIG['button'] + return ImageButton( + x, y, + width or btn_config['width'], + btn_config['height'], + text, + callback, + bg_image_path=btn_config['image_path'], + font=self.button_font, + text_color=btn_config['text_color'] + ) + + def load_quadrants_config(self): + """ + fonction : charge la configuration des quadrants depuis le fichier JSON + """ + try: + with open('configs/quadrants.json', 'r') as f: + self.quadrants_config = json.load(f) + self.update_quadrant_list() + Logger.info("QuadrantEditorScreen", f"Loaded {len(self.quadrant_names)} quadrants") + except FileNotFoundError: + Logger.warning("QuadrantEditorScreen", "quadrants.json not found. A new file will be created on save.") + self.quadrants_config = {} + self.quadrant_names = [] + self.show_feedback_message("Warning: quadrants.json not found. Will be created on save.", is_error=False) + except json.JSONDecodeError as e: + Logger.error("QuadrantEditorScreen", f"Failed to parse quadrants.json: {str(e)}") + self.quadrants_config = {} + self.quadrant_names = [] + self.show_feedback_message("Error: Could not parse quadrants_config.json. Check format.", is_error=True) + except Exception as e: + Logger.error("QuadrantEditorScreen", f"Failed to load quadrants config: {str(e)}") + self.quadrants_config = {} + self.quadrant_names = [] + self.show_feedback_message("Error: Could not load quadrants_config.json", is_error=True) + + def save_quadrants_config(self) -> bool: + """ + fonction : sauvegarde la configuration des quadrants dans le fichier JSON + retour : True si la sauvegarde a réussi, False sinon + """ + try: + with open('configs/quadrants.json', 'w') as f: + json.dump(self.quadrants_config, f, indent=2) + Logger.info("QuadrantEditorScreen", "Quadrants configuration saved successfully") + return True + except Exception as e: + Logger.error("QuadrantEditorScreen", f"Failed to save quadrants config: {str(e)}") + return False + + def convert_from_storage_format(self, stored_grid: List[List[List[Optional[Any]]]]) -> List[List[Optional[str]]]: + """ + fonction : convertit une grille du format de stockage vers le format d'édition + params : + stored_grid - grille au format de stockage + retour : grille au format d'édition + """ + converted_grid: List[List[Optional[str]]] = [] + for row in stored_grid: + converted_row: List[Optional[str]] = [] + for cell in row: + if isinstance(cell, list) and len(cell) == 2 and isinstance(cell[1], int) and cell[1] in self.COLOR_MAP: + converted_row.append(self.COLOR_MAP[cell[1]]) + else: + converted_row.append(None) + converted_grid.append(converted_row) + return converted_grid + + def convert_to_storage_format(self, editor_grid: List[List[Optional[str]]]) -> List[List[List[Optional[Any]]]]: + """ + fonction : convertit une grille du format d'édition vers le format de stockage + params : + editor_grid - grille au format d'édition + retour : grille au format de stockage + """ + converted_grid: List[List[List[Optional[Any]]]] = [] + for row in editor_grid: + converted_row: List[List[Optional[Any]]] = [] + for cell_color_name in row: + if cell_color_name in self.REVERSE_COLOR_MAP: + converted_row.append([None, self.REVERSE_COLOR_MAP[cell_color_name]]) + else: + converted_row.append([None, 0]) + converted_grid.append(converted_row) + return converted_grid + + def is_valid_quadrant(self, grid: List[List[Optional[str]]]) -> bool: + """ + fonction : vérifie si la configuration de la grille est valide + params : + grid - grille à vérifier + retour : True si la grille est valide, False sinon + """ + for row in grid: + for cell in row: + if cell is None: + return False + return True + + def set_current_color(self, color: str): + """ + fonction : définit la couleur active pour la grille + params : + color - nom de la couleur à utiliser + """ + self.current_color = color + Logger.info("QuadrantEditorScreen", f"Color set to {color}") + + def prev_quadrant(self): + """ + fonction : sélectionne le quadrant précédent + """ + if not self.quadrant_names: + return + + self.selected_quadrant_index = (self.selected_quadrant_index - 1) % len(self.quadrant_names) + Logger.info("QuadrantEditorScreen", f"Moved to previous quadrant, index: {self.selected_quadrant_index}") + + def next_quadrant(self): + """ + fonction : sélectionne le quadrant suivant + """ + if not self.quadrant_names: + return + + self.selected_quadrant_index = (self.selected_quadrant_index + 1) % len(self.quadrant_names) + Logger.info("QuadrantEditorScreen", f"Moved to next quadrant, index: {self.selected_quadrant_index}") + + def load_selected_quadrant(self): + """ + fonction : charge le quadrant sélectionné dans la grille + """ + if not self.quadrant_names: + self.show_feedback_message("Info: No quadrants available to load.", is_error=False) + Logger.info("QuadrantEditorScreen", "Load attempt with no quadrant names available.") + return + + if 0 <= self.selected_quadrant_index < len(self.quadrant_names): + quadrant_name_to_load = self.quadrant_names[self.selected_quadrant_index] + if quadrant_name_to_load in self.quadrants_config: + self.grid = self.convert_from_storage_format(self.quadrants_config[quadrant_name_to_load]) + self.save_name = quadrant_name_to_load + Logger.info("QuadrantEditorScreen", f"Loaded quadrant: {quadrant_name_to_load}") + self.show_feedback_message(f"Quadrant '{quadrant_name_to_load}' loaded.", is_error=False) + else: + Logger.error("QuadrantEditorScreen", f"Attempted to load non-existent quadrant '{quadrant_name_to_load}' from config.") + self.show_feedback_message(f"Error: Quadrant '{quadrant_name_to_load}' not found in config.", is_error=True) + else: + Logger.warning("QuadrantEditorScreen", f"Load attempt with invalid index: {self.selected_quadrant_index}. Clamping.") + self.selected_quadrant_index = 0 + self.show_feedback_message("Error: Invalid quadrant selection index.", is_error=True) + + def update_quadrant_list(self, new_quadrant_name: Optional[str] = None): + """ + fonction : met à jour la liste des quadrants + params : + new_quadrant_name - nom du nouveau quadrant à sélectionner (optionnel) + """ + self.quadrant_names = sorted(self.quadrants_config.keys()) + if new_quadrant_name is not None and new_quadrant_name in self.quadrant_names: + self.selected_quadrant_index = self.quadrant_names.index(new_quadrant_name) + elif self.quadrant_names: + self.selected_quadrant_index = min(self.selected_quadrant_index, len(self.quadrant_names) - 1) + else: + self.selected_quadrant_index = 0 + + def save_quadrant(self): + """ + fonction : sauvegarde la configuration actuelle de la grille + """ + if not self.is_valid_quadrant(self.grid): + Logger.warning("QuadrantEditorScreen", "Save attempt failed: invalid quadrant configuration.") + self.show_feedback_message("Error: All grid cells must be filled to save.", is_error=True) + return + + current_save_name = self.save_name.strip() + if not current_save_name: + Logger.warning("QuadrantEditorScreen", "Save attempt failed: no name provided.") + self.show_feedback_message("Error: Quadrant name cannot be empty.", is_error=True) + return + + self.quadrants_config[current_save_name] = self.convert_to_storage_format(self.grid) + if self.save_quadrants_config(): + self.update_quadrant_list(current_save_name) + Logger.info("QuadrantEditorScreen", f"Quadrant saved as: {current_save_name}") + self.show_feedback_message(f"Quadrant '{current_save_name}' saved successfully!", is_error=False) + else: + self.show_feedback_message(f"Error: Failed to save quadrant '{current_save_name}' to file.", is_error=True) + + def clear_grid(self): + """ + fonction : réinitialise la grille d'édition + """ + self.grid = [[None for _ in range(self.GRID_SIZE)] for _ in range(self.GRID_SIZE)] + self.save_name = "" + Logger.info("QuadrantEditorScreen", "Grid cleared") + self.show_feedback_message("Grid cleared.", is_error=False) + + def go_back(self): + """ + fonction : retourne à l'écran de sélection du mode + """ + from src.windows.screens.game_selection.mode_selection import ModeSelectionScreen + self.next_screen = ModeSelectionScreen + self.running = False + Logger.info("QuadrantEditorScreen", "Returning to ModeSelectionScreen.") + + def handle_screen_events(self, event: pygame.event.Event): + """ + fonction : gère les événements de l'écran + params : + event - événement Pygame à traiter + """ + if event.type == pygame.MOUSEBUTTONDOWN and event.button == 1: + self.handle_mouse_click(event.pos) + elif event.type == pygame.KEYDOWN and self.name_input_active: + self.handle_keyboard_input(event) + + self.handle_button_events(event) + + def handle_mouse_click(self, pos: Tuple[int, int]): + """ + fonction : gère les clics de souris + params : + pos - position du clic + """ + if self.handle_grid_click(pos): + return + + if self.name_input_rect and self.name_input_rect.collidepoint(pos): + self.name_input_active = True + Logger.debug("QuadrantEditorScreen", "Name input field activated.") + else: + if self.name_input_active: + Logger.debug("QuadrantEditorScreen", "Name input field deactivated.") + self.name_input_active = False + + def handle_grid_click(self, pos: Tuple[int, int]) -> bool: + """ + fonction : gère les clics sur la grille + params : + pos - position du clic + retour : True si un clic sur la grille a été traité + """ + for r, row_of_rects in enumerate(self.grid_rects): + for c, cell_rect in enumerate(row_of_rects): + if cell_rect.collidepoint(pos): + self.grid[r][c] = self.current_color + return True + return False + + def handle_keyboard_input(self, event: pygame.event.Event): + """ + fonction : gère les entrées clavier + params : + event - événement clavier à traiter + """ + if event.key == pygame.K_BACKSPACE: + self.save_name = self.save_name[:-1] + elif event.key == pygame.K_RETURN: + self.name_input_active = False + Logger.debug("QuadrantEditorScreen", "Name input field deactivated by Enter key.") + elif event.unicode.isprintable(): + if self.input_text_font and self.input_text_font.size(self.save_name + event.unicode)[0] < self.name_input_rect.width - 10: + self.save_name += event.unicode + + def handle_button_events(self, event: pygame.event.Event): + """ + fonction : gère les événements des boutons + params : + event - événement à traiter + """ + buttons = [ + *self.color_buttons, + self.prev_quadrant_button, + self.next_quadrant_button, + self.load_button, + self.save_button, + self.clear_button, + self.back_button + ] + + for button in buttons: + if button: + button.handle_event(event) + + def update_screen(self, mouse_pos: Tuple[int, int]): + """ + fonction : met à jour l'état des éléments de l'écran + params : + mouse_pos - position actuelle de la souris + """ + self.update_feedback_message() + self.update_buttons(mouse_pos) + + def update_feedback_message(self): + """ + fonction : met à jour l'état du message de feedback + """ + if self.feedback_message_timer > 0: + self.feedback_message_timer -= 1 + if self.feedback_message_timer == 0: + self.feedback_message_surface = None + self.feedback_message = None + + def update_buttons(self, mouse_pos: Tuple[int, int]): + """ + fonction : met à jour l'état des boutons + params : + mouse_pos - position actuelle de la souris + """ + buttons = [ + *self.color_buttons, + self.prev_quadrant_button, + self.next_quadrant_button, + self.load_button, + self.save_button, + self.clear_button, + self.back_button + ] + + for button in buttons: + if button: + button.check_hover(mouse_pos) + + def draw_screen(self): + """ + fonction : dessine les éléments de l'écran + """ + self.draw_background() + self.draw_title() + self.draw_labels() + self.draw_buttons() + self.draw_grid() + self.draw_quadrant_navigation() + self.draw_name_input() + self.draw_instruction() + self.draw_feedback() + + def draw_background(self): + """ + fonction : dessine l'arrière-plan + """ + if self.background_image: + self.screen.blit(self.background_image, (0, 0)) + else: + self.screen.fill(self.UI_CONFIG['colors']['background']) + + def draw_title(self): + """ + fonction : dessine le titre + """ + if self.title_font: + title_text_surface = self.title_font.render("QUADRANT EDITOR", True, self.UI_CONFIG['colors']['text']) + title_x: int = (self.width - title_text_surface.get_width()) // 2 + title_y: int = self.navbar_height + 20 + self.screen.blit(title_text_surface, (title_x, title_y)) + + def draw_labels(self): + """ + fonction : dessine les étiquettes + """ + if not self.label_font: + return + + labels = [ + (self.colors_label_text, self.colors_label_pos), + (self.grid_label_text, self.grid_label_pos), + (self.quadrant_label_text, self.quadrant_label_pos) + ] + + for text, pos in labels: + label_surface = self.label_font.render(text, True, self.UI_CONFIG['colors']['text']) + self.screen.blit(label_surface, pos) + + if self.name_input_rect: + name_label_surface = self.label_font.render(self.name_label_text, True, self.UI_CONFIG['colors']['text']) + name_label_y = self.name_input_rect.y + (self.name_input_rect.height - name_label_surface.get_height()) // 2 + self.screen.blit(name_label_surface, (self.name_label_pos[0], name_label_y)) + + def draw_buttons(self): + """ + fonction : dessine les boutons + """ + for i, button in enumerate(self.color_buttons): + button.draw(self.screen) + if self.COLORS[i] == self.current_color: + pygame.draw.rect(self.screen, self.UI_CONFIG['colors']['text'], button.rect, 3) + + buttons = [ + self.prev_quadrant_button, + self.next_quadrant_button, + self.load_button, + self.save_button, + self.clear_button, + self.back_button + ] + + for button in buttons: + if button: + button.draw(self.screen) + + def draw_grid(self): + """ + fonction : dessine la grille + """ + for row_idx in range(self.GRID_SIZE): + for col_idx in range(self.GRID_SIZE): + cell_rect = self.grid_rects[row_idx][col_idx] + cell_color_name = self.grid[row_idx][col_idx] + + fill_color = self.get_pygame_color(cell_color_name) + pygame.draw.rect(self.screen, fill_color, cell_rect) + pygame.draw.rect(self.screen, self.UI_CONFIG['colors']['grid_border'], cell_rect, 2) + + def draw_quadrant_navigation(self): + """ + fonction : dessine la navigation des quadrants + """ + if self.quadrant_names and self.label_font: + current_name = self.quadrant_names[self.selected_quadrant_index] if self.quadrant_names else "" + quadrant_surface = self.label_font.render(current_name, True, self.UI_CONFIG['colors']['text']) + + available_width = self.next_quadrant_button.rect.x - self.quadrant_num_display_pos[0] + if quadrant_surface.get_width() > available_width: + quadrant_surface = self.label_font.render(current_name[:8] + "...", True, self.UI_CONFIG['colors']['text']) + + self.screen.blit(quadrant_surface, self.quadrant_num_display_pos) + + def draw_name_input(self): + """ + fonction : dessine le champ de saisie du nom + """ + if not self.name_input_rect: + return + + border_color = self.UI_CONFIG['colors']['text'] if self.name_input_active else self.UI_CONFIG['colors']['input_inactive'] + pygame.draw.rect(self.screen, (0, 0, 0, 100), self.name_input_rect) + pygame.draw.rect(self.screen, border_color, self.name_input_rect, 2) + + if not self.save_name or not self.input_text_font: + return + + name_surface = self.input_text_font.render(self.save_name, True, self.UI_CONFIG['colors']['text']) + text_x = self.name_input_rect.x + 5 + text_y = self.name_input_rect.y + (self.name_input_rect.height - name_surface.get_height()) // 2 + + available_width = self.name_input_rect.width - 10 + if name_surface.get_width() > available_width: + area = pygame.Rect(0, 0, available_width, name_surface.get_height()) + self.screen.blit(name_surface, (text_x, text_y), area=area) + else: + self.screen.blit(name_surface, (text_x, text_y)) + + def draw_instruction(self): + """ + fonction : dessine le texte d'instruction + """ + if self.instruction_text_surface: + self.screen.blit(self.instruction_text_surface, self.instruction_text_pos) + + def draw_feedback(self): + """ + fonction : dessine le message de feedback + """ + if self.feedback_message_surface and self.feedback_message_timer > 0 and self.feedback_font: + self.screen.blit(self.feedback_message_surface, self.feedback_message_pos) + + def show_feedback_message(self, text: str, is_error: bool = True, duration_frames: Optional[int] = None): + """ + fonction : affiche un message de feedback temporaire + params : + text - contenu du message + is_error - True si erreur, False si succès + duration_frames - durée en frames du message + """ + self.feedback_message = text + self.feedback_message_color = (255, 100, 100) if is_error else (100, 255, 100) + + if not self.feedback_font: + Logger.warning("QuadrantEditorScreen", "Feedback font not initialized, using fallback.") + self.feedback_font = pygame.font.Font(None, 28) + + self.feedback_message_surface = self.feedback_font.render(self.feedback_message, True, self.feedback_message_color) + + msg_x: int = (self.width - self.feedback_message_surface.get_width()) // 2 + msg_y: int = self.feedback_message_base_y + self.feedback_message_pos = (msg_x, msg_y) + + self.feedback_message_timer = duration_frames if duration_frames is not None else self.FEEDBACK_MESSAGE_DURATION + Logger.info("FeedbackMessage", f"Displaying: '{text}' (Error: {is_error})") + + def get_pygame_color(self, color_name: Optional[str]) -> Tuple[int, int, int]: + """ + fonction : obtient la couleur RGB correspondant au nom de couleur + params : + color_name - nom de la couleur + retour : tuple RGB de la couleur + """ + color_map: Dict[str, Tuple[int, int, int]] = { + 'red': (220, 20, 20), + 'green': (20, 220, 20), + 'blue': (20, 20, 220), + 'yellow': (220, 220, 20) + } + return color_map.get(color_name, (128, 128, 128)) if color_name else (128, 128, 128) diff --git a/tools/quadrants_editor/editor.py b/tools/quadrants_editor/editor.py deleted file mode 100644 index badbdc2..0000000 --- a/tools/quadrants_editor/editor.py +++ /dev/null @@ -1,215 +0,0 @@ -import tkinter as tk -from tkinter import messagebox, ttk -from PIL import Image, ImageTk -import json -import os -from src.utils.logger import Logger -from tools.quadrants_editor.validator import QuadrantValidator - -class QuadrantEditor: - COLORS = ['red', 'green', 'blue', 'yellow'] - GRID_SIZE = 4 - CELL_SIZE = 80 - COLOR_MAP = {0: 'red', 1: 'green', 2: 'blue', 3: 'yellow'} - REVERSE_COLOR_MAP = {'red': 0, 'green': 1, 'blue': 2, 'yellow': 3} - BUTTON_STYLE = {'font': ('Helvetica', 10), 'borderwidth': 2, 'relief': 'raised', 'cursor': 'hand2'} - - def __init__(self): - self.root = tk.Tk() - self.root.title("Quadrant Editor") - self.root.configure(bg='#f0f0f0') - - self.style = ttk.Style() - self.style.configure('TLabelframe', background='#f0f0f0') - self.style.configure('TLabelframe.Label', background='#f0f0f0', font=('Helvetica', 10, 'bold')) - self.style.configure('TCombobox', background='white', font=('Helvetica', 10)) - - self.current_color = tk.StringVar(value=self.COLORS[0]) - self.grid = [[None for _ in range(self.GRID_SIZE)] for _ in range(self.GRID_SIZE)] - self.validator = QuadrantValidator() - self.load_quadrants_config() - self.setup_ui() - - def load_quadrants_config(self): - try: - with open('configs/quadrants.json', 'r') as f: - self.quadrants_config = json.load(f) - except: - self.quadrants_config = {} - - def save_quadrants_config(self): - try: - with open('configs/quadrants.json', 'w') as f: - json.dump(self.quadrants_config, f, indent=2) - return True - except Exception as e: - Logger.error("QuadrantEditor", f"Failed to save quadrants config: {str(e)}") - return False - - def convert_from_storage_format(self, stored_grid): - # convertit le format de stockage en format d'édition - converted_grid = [] - for row in stored_grid: - converted_row = [] - for cell in row: - if isinstance(cell, list) and len(cell) == 2 and cell[1] in self.COLOR_MAP: - converted_row.append(self.COLOR_MAP[cell[1]]) - else: - converted_row.append(None) - converted_grid.append(converted_row) - return converted_grid - - def convert_to_storage_format(self, editor_grid): - # convertit le format d'édition en format de stockage - converted_grid = [] - for row in editor_grid: - converted_row = [] - for cell in row: - if cell in self.REVERSE_COLOR_MAP: - converted_row.append([None, self.REVERSE_COLOR_MAP[cell]]) - else: - converted_row.append([None, 0]) - converted_grid.append(converted_row) - return converted_grid - - def setup_ui(self): - # initialise l'interface utilisateur - main_frame = tk.Frame(self.root, bg='#f0f0f0', padx=20, pady=20) - main_frame.pack(expand=True, fill='both') - - left_panel = tk.Frame(main_frame, bg='#f0f0f0') - left_panel.pack(side=tk.LEFT, padx=(0, 20)) - - title_label = tk.Label(left_panel, text="QUADRANT EDITOR", font=('Helvetica', 16, 'bold'), - bg='#f0f0f0', fg='#333333') - title_label.pack(pady=(0, 20)) - - self.create_color_selector(left_panel) - self.create_quadrant_selector(left_panel) - - grid_frame = tk.Frame(main_frame, bg='#f0f0f0') - grid_frame.pack(side=tk.LEFT) - - grid_title = tk.Label(grid_frame, text="QUADRANT GRID", font=('Helvetica', 12, 'bold'), - bg='#f0f0f0', fg='#333333') - grid_title.pack(pady=(0, 10)) - - self.create_grid(grid_frame) - self.create_buttons(left_panel) - - def create_color_selector(self, parent): - # crée le sélecteur de couleurs - color_frame = ttk.LabelFrame(parent, text="Colors", padding=(10, 5)) - color_frame.pack(fill='x', pady=(0, 10)) - - for color in self.COLORS: - frame = tk.Frame(color_frame, bg='#f0f0f0') - frame.pack(fill='x', pady=2) - - rb = tk.Radiobutton(frame, text=color, variable=self.current_color, value=color, - bg='#f0f0f0', font=('Helvetica', 10), cursor='hand2') - rb.pack(side=tk.LEFT) - - color_preview = tk.Frame(frame, width=20, height=20, bg=color, - relief='solid', borderwidth=1) - color_preview.pack(side=tk.RIGHT, padx=5) - - def create_quadrant_selector(self, parent): - selector_frame = ttk.LabelFrame(parent, text="Load Quadrant", padding=(10, 5)) - selector_frame.pack(fill='x', pady=(0, 10)) - - self.quadrant_combo = ttk.Combobox(selector_frame, values=sorted(self.quadrants_config.keys()), - state="readonly", width=30, font=('Helvetica', 10)) - self.quadrant_combo.pack(fill='x', pady=5) - self.quadrant_combo.bind('<>', self.on_quadrant_selected) - - def create_grid(self, parent): - canvas_frame = tk.Frame(parent, bg='white', bd=2, relief='solid', padx=2, pady=2) - canvas_frame.pack() - - canvas_size = self.GRID_SIZE * self.CELL_SIZE - self.canvas = tk.Canvas(canvas_frame, width=canvas_size, height=canvas_size, - bg='white', bd=0, highlightthickness=0) - self.canvas.pack() - self.canvas.bind("", self.handle_click) - self.draw_grid() - - def create_buttons(self, parent): - button_frame = ttk.LabelFrame(parent, text="Actions", padding=(10, 5)) - button_frame.pack(fill='x', pady=(0, 10)) - - save_frame = tk.Frame(button_frame, bg='#f0f0f0') - save_frame.pack(fill='x', pady=5) - - tk.Label(save_frame, text="Quadrant name:", font=('Helvetica', 10), - bg='#f0f0f0').pack(anchor='w') - - self.save_name = ttk.Entry(save_frame, font=('Helvetica', 10)) - self.save_name.pack(fill='x', pady=(2, 5)) - - tk.Button(button_frame, text="Save", command=self.save_quadrant, - bg='#4CAF50', fg='white', activebackground='#45a049', - activeforeground='white', **self.BUTTON_STYLE).pack(fill='x', pady=2) - - tk.Button(button_frame, text="Clear Grid", command=self.clear_grid, - bg='#f44336', fg='white', activebackground='#da190b', - activeforeground='white', **self.BUTTON_STYLE).pack(fill='x', pady=2) - - def draw_grid(self): - # dessine la grille avec les couleurs - self.canvas.delete("all") - for row in range(self.GRID_SIZE): - for col in range(self.GRID_SIZE): - x1, y1 = col * self.CELL_SIZE, row * self.CELL_SIZE - x2, y2 = x1 + self.CELL_SIZE, y1 + self.CELL_SIZE - color = self.grid[row][col] or "white" - - self.canvas.create_rectangle(x1, y1, x2, y2, fill=color, outline='#666666', width=1) - if color != "white": - self.canvas.create_line(x1, y1, x2, y1, fill='white', width=1) - self.canvas.create_line(x1, y1, x1, y2, fill='white', width=1) - - def handle_click(self, event): - # gère les clics sur la grille - col, row = event.x // self.CELL_SIZE, event.y // self.CELL_SIZE - if 0 <= row < self.GRID_SIZE and 0 <= col < self.GRID_SIZE: - self.grid[row][col] = self.current_color.get() - self.draw_grid() - - def on_quadrant_selected(self, event=None): - selected = self.quadrant_combo.get() - if selected in self.quadrants_config: - self.grid = self.convert_from_storage_format(self.quadrants_config[selected]) - self.draw_grid() - self.save_name.delete(0, tk.END) - self.save_name.insert(0, selected) - - def save_quadrant(self): - if not self.validator.is_valid_quadrant(self.grid): - messagebox.showerror("Error", "Invalid quadrant configuration") - return - - name = self.save_name.get().strip() - if not name: - messagebox.showerror("Error", "Please enter a name for the quadrant") - return - - self.quadrants_config[name] = self.convert_to_storage_format(self.grid) - if self.save_quadrants_config(): - self.quadrant_combo['values'] = sorted(self.quadrants_config.keys()) - messagebox.showinfo("Success", f"Quadrant saved as '{name}'") - else: - messagebox.showerror("Error", "Failed to save quadrant") - - def clear_grid(self): - self.grid = [[None for _ in range(self.GRID_SIZE)] for _ in range(self.GRID_SIZE)] - self.draw_grid() - - def run(self): - # centre la fenêtre sur l'écran - self.root.update_idletasks() - width, height = self.root.winfo_width(), self.root.winfo_height() - x = (self.root.winfo_screenwidth() // 2) - (width // 2) - y = (self.root.winfo_screenheight() // 2) - (height // 2) - self.root.geometry(f'+{x}+{y}') - self.root.mainloop() \ No newline at end of file diff --git a/tools/quadrants_editor/validator.py b/tools/quadrants_editor/validator.py deleted file mode 100644 index 0c4cc7f..0000000 --- a/tools/quadrants_editor/validator.py +++ /dev/null @@ -1,36 +0,0 @@ -from collections import Counter - -class QuadrantValidator: - """ - class QuadrantValidator : vérifie la validité des quadrants selon les règles du jeu - """ - REQUIRED_COUNT = 4 # nombre requis de chaque couleur - VALID_COLORS = {'red', 'green', 'blue', 'yellow'} # couleurs valides - - def is_valid_quadrant(self, grid): - """ - fonction : vérifie si un quadrant respecte les règles de construction - paramètres : - grid - grille 4x4 à valider - retourne : True si le quadrant est valide, False sinon - - règles de validité : - - grille 4x4 complète - - exactement 4 cases de chaque couleur - - uniquement des couleurs valides - """ - # vérifie la taille de la grille - if not grid or len(grid) != 4 or any(len(row) != 4 for row in grid): - return False - - # compte les occurrences de chaque couleur - color_counts = Counter() - for row in grid: - for cell in row: - if cell not in self.VALID_COLORS: - return False - color_counts[cell] += 1 - - # vérifie que chaque couleur apparaît exactement 4 fois - return all(count == self.REQUIRED_COUNT for count in color_counts.values()) and \ - len(color_counts) == len(self.VALID_COLORS) \ No newline at end of file