2026-rff_mp/nehoroshevaa/task2/observer/console_view.py
2026-05-24 21:49:38 +03:00

64 lines
1.1 KiB
Python

import os
from observer.observer import Observer
from observer.maze_event import MazeEventType
class ConsoleView(Observer):
def __init__(self, maze=None):
self.maze = maze
self.path = []
def update(self, event):
if event.event_type == MazeEventType.PATH_FOUND:
self.path = event.data
self.render()
def render(self):
os.system(
"cls" if os.name == "nt"
else "clear"
)
path_positions = {
(cell.x, cell.y)
for cell in self.path
}
for row in self.maze.cells:
line = ""
for cell in row:
position = (cell.x, cell.y)
if cell.is_wall:
line += "#"
elif cell.is_start:
line += "S"
elif cell.is_exit:
line += "E"
elif position in path_positions:
line += "*"
else:
line += " "
print(line)