Source code for donjuan.edge

from typing import Optional

from donjuan.cell import Cell


[docs]class Edge: """ An edge sits between two `Cell`s. Args: cell1 (Optional[Cell]): cell on one side of the edge cell2 (Optional[Cell]): cell on the other side of the edge has_door (bool, optional): default ``False``, indicates whether this object has a door """ def __init__( self, cell1: Optional[Cell] = None, cell2: Optional[Cell] = None, has_door: bool = False, ): self._cell1 = cell1 self._cell2 = cell2 self.has_door = has_door @property def cell1(self) -> Optional[Cell]: return self._cell1 @property def cell2(self) -> Optional[Cell]: return self._cell2
[docs] def set_cell1(self, cell: Cell) -> None: self._cell1 = cell
[docs] def set_cell2(self, cell: Cell) -> None: self._cell2 = cell
@property def is_wall(self) -> bool: return ( (not self.has_door) or (self.cell1 is None) or (self.cell2 is None) or (self.cell1.filled != self.cell2.filled) or (self.cell1.space != self.cell2.space) )