2026-rff_mp/kuznetsovTD/tusk 2/models/maze.py
2026-05-25 13:06:15 +03:00

32 lines
922 B
Python

from models.cell import Cell
class Maze:
def __init__(self, cells, start_cell, exit_cell):
self.cells = cells
self.height = len(cells)
self.width = len(cells[0])
self.start_cell = start_cell
self.exit_cell = exit_cell
def get_cell(self, x, y):
if 0 <= x < self.width and 0 <= y < self.height:
return self.cells[y][x]
return None
def check_cell(self, x, y):
cell = self.get_cell(x, y)
return cell and cell.is_passable()
def get_neighbors(self, cell: Cell):
directions = [(0, -1), (0, 1), (-1, 0), (1, 0)]
neighbors = []
for dx, dy in directions:
x = cell.x + dx
y = cell.y + dy
if self.check_cell(x, y):
neighbors.append(self.get_cell(x, y))
return neighbors
def __repr__(self):
return f"Maze({self.width}x{self.height})"