2026-rff_mp/BrychkinKA/src/ui/console_view.py
2026-05-25 15:23:54 +03:00

33 lines
1021 B
Python

import os
from typing import List
from src.model.cell import Cell
from src.model.maze import Maze
from .observer import Observer
class ConsoleView(Observer):
def update(self, event: str):
print(f"[EVENT] {event}")
def render(self, maze: Maze, player_pos: Cell = None, path: List[Cell] = None):
os.system('cls' if os.name == 'nt' else 'clear')
path_set = set(path) if path else set()
for y in range(maze.height):
row = ""
for x in range(maze.width):
cell = maze.get_cell(x, y)
if cell.is_wall:
row += "#"
elif cell.is_start:
row += "S"
elif cell.is_exit:
row += "E"
elif player_pos and cell.x == player_pos.x and cell.y == player_pos.y:
row += "@"
elif cell in path_set:
row += "*"
else:
row += " "
print(row)