From e4a9efb4658487e528befe62e541c510b76e58ba Mon Sep 17 00:00:00 2001 From: smirnovavyu Date: Fri, 4 Sep 2026 15:14:54 +0000 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B8=D1=82=D1=8C=20Sm?= =?UTF-8?q?irnovaVYu/docs/data/observers.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SmirnovaVYu/docs/data/observers.py | 66 ------------------------------ 1 file changed, 66 deletions(-) delete mode 100644 SmirnovaVYu/docs/data/observers.py diff --git a/SmirnovaVYu/docs/data/observers.py b/SmirnovaVYu/docs/data/observers.py deleted file mode 100644 index eb101146..00000000 --- a/SmirnovaVYu/docs/data/observers.py +++ /dev/null @@ -1,66 +0,0 @@ -from abc import ABC, abstractmethod -from typing import List, Optional -from models import Cell, Maze - - -class Observer(ABC): - - @abstractmethod - def update(self, event: str, data: dict) -> None: - pass - - -class ConsoleView(Observer): - - def render(self, maze: Maze, player_position: Optional[Cell] = None, path: Optional[List[Cell]] = None) -> None: - path_set = set(path) if path else set() - - print("\n+" + "-" * maze.width + "+") - - for y in range(maze.height): - row = [] - for x in range(maze.width): - cell = maze.get_cell(x, y) - if cell is None: - row.append('?') - elif player_position and cell == player_position: - row.append('@') - elif cell.is_start: - row.append('S') - elif cell.is_exit: - row.append('E') - elif cell in path_set: - row.append('*') - elif cell.is_wall: - row.append('#') - else: - row.append(' ') - print("|" + ''.join(row) + "|") - - print("+" + "-" * maze.width + "+") - - def update(self, event: str, data: dict) -> None: - if event == "maze_loaded": - maze = data.get('maze') - print("\n Лабиринт загружен:") - self.render(maze) - - elif event == "search_start": - algorithm = data.get('algorithm', 'Unknown') - print(f"\n Начинаем поиск алгоритмом: {algorithm}") - - elif event == "path_found": - maze = data.get('maze') - path = data.get('path') - stats = data.get('stats') - self.render(maze, path=path) - - elif event == "no_path": - stats = data.get('stats') - print(f"\n {stats}") - - elif event == "player_moved": - maze = data.get('maze') - player = data.get('player') - if player: - self.render(maze, player_position=player.current_cell) \ No newline at end of file