#!/usr/bin/env python
# coding: utf-8

# In[ ]:


from dataclasses import dataclass
from typing import Optional

@dataclass
class Cell:
    """Клетка лабиринта."""
    x: int
    y: int
    is_wall: bool = False
    is_start: bool = False
    is_exit: bool = False
    weight: int = 1  # Для взвешенных лабиринтов (доп. задание)

    def is_passable(self) -> bool:
        """Проходима ли клетка."""
        return not self.is_wall

    def __hash__(self) -> int:
        return hash((self.x, self.y))

    def __eq__(self, other) -> bool:
        if not isinstance(other, Cell):
            return False
        return self.x == other.x and self.y == other.y

