2026-rff_mp/stepushovgs/labyrinth/source/classes/cell.py
GordStep 5fce1bb8a6 Добавил dfs
- чертовы координаты
- изменил положение observer
- изменил систему координат, привёл к единому стилю - столбец, строка
2026-05-21 23:31:17 +03:00

86 lines
2.4 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

class Cell:
"""
Клетка лабиринта
`x, y` - координаты клетки в лабиринте
`isWall` - Является ли клетка стеной
`isStart` - Является ли клетка стартом
`isExit` - Является ли клетка выходом лабиринта
`value` - Вес клетки
"""
def __init__(self, x: int, y: int, isWall=False, isStart=False, isExit=False, value=1):
"""
Создание клетки лабиринта
`x` - столбец клетки в лабиринте
`y` - строка клетки в лабиринте
`isWall` - Является ли клетка стеной
`isStart` - Является ли клетка стартом
`isExit` - Является ли клетка выходом лабиринта
`value` - Вес клетки
"""
self.__x = x
self.__y = y
self.isWall = isWall
self.isStart = isStart
self.isExit = isExit
self.__value = value
pass
@property
def isPassable(self) -> bool:
"""возвращает `True` для прохода, если клетка не стена"""
return not self.isWall
@property
def x(self) -> int:
"""Возвращает координату клетки по оси X"""
return self.__x
@property
def y(self) -> int:
"""Возвращает координату клетки по оси Y"""
return self.__y
def getXY(self) -> tuple[int, int]:
"""Возвращает кортеж координат в формате `(x, y)`"""
return self.__x, self.__y
@property
def value(self) -> int:
"""Возвращает вес клетки"""
return self.__value
def toStr(self):
"""
Возвращает строчкое представление клетки
`#` - Стена
`S` - Начало лабиринта
`E` - Конец лабиринта
` `(пробел) - свободный проход
`<int>` - Вес клетки
"""
if self.isWall:
return '#'
elif self.isStart:
return 'S'
elif self.isExit:
return 'E'
else:
return ' '