[2] Обновление docstring классов в файле models/base.py и пути в документации

This commit is contained in:
SerKin0 2026-05-22 00:05:59 +03:00
parent 5525af0b26
commit c096613e08
2 changed files with 69 additions and 2 deletions

View File

@ -1,9 +1,9 @@
# API Reference
## Модуль `models.map`
## Модуль `models.base`
```{eval-rst}
.. automodule:: models.map
.. automodule:: models.base
:members:
:undoc-members:
:show-inheritance:

View File

@ -38,6 +38,39 @@ class Cell:
"""
return not self.is_wall
@property
def is_wall(self):
return self._is_wall
@property
def is_start(self):
return self._is_start
@property
def is_exit(self):
return self._is_exit
def _clear_flags(self) -> None:
"""Обнуляет все флаги поля"""
self._is_start = False
self._is_exit = False
self._is_wall = False
@is_wall.setter
def is_wall(self, value: bool) -> None:
self._clear_flags()
self._is_wall = True
@is_start.setter
def is_start(self, value: bool) -> None:
self._clear_flags()
self._is_start = True
@is_exit.setter
def is_exit(self, value: bool) -> None:
self._clear_flags()
self._is_exit = True
def __str__(self) -> str:
if self._is_wall:
type_cell = "Стена"
@ -66,14 +99,48 @@ class Maze:
]
def _check_point_in_map(self, x: int, y: int) -> bool:
"""Проверка нахождения точки в границах поля
Args:
x (int): Координата точки в оси X
y (int): Координата точки в оси Y
Returns:
bool: True если поля в поле, иначе False
"""
return (0 <= x < self._width) and (0 <= y < self._height)
def get_cell(self, x: int, y: int) -> Optional[Cell]:
"""Получение значения поля по координате в лабиринте
Args:
x (int): Координата точки в оси X
y (int): Координата точки в оси Y
Returns:
Optional[Cell]: Объект поля, при его наличии
"""
if not self._check_point_in_map(x, y):
return None
return self._map[y][x]
def get_neighbors(self, x: int, y: int) -> Optional[list[Cell]]:
"""Получение соседних полей относительно заданного поля
Под соседями поля в лабиринте имеется виду клетки сверху, справа,
снизу и слева относительно её. Если точка находится за границами,
то будет возвращено `None`
Args:
x (int): Координата точки в оси X
y (int): Координата точки в оси Y
Returns:
Optional[list[Cell]]: Список соседних полей
"""
if not self._check_point_in_map(x, y):
return None
list()
vector_x = [0, 1, 0, -1]
vector_y = [1, 0, -1, 0]