from typing import List, Optional from maze import Maze, Cell class ConsoleView: @staticmethod def render(maze: Maze, path: Optional[List[Cell]] = None, player_pos: Optional[Cell] = None): 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 player_pos and cell is player_pos: row += 'P' elif cell.is_start: row += 'S' elif cell.is_exit: row += 'E' elif cell.is_wall: row += '#' elif path and cell in path_set: row += '.' else: row += ' ' print(row)