[2] Обновление docstring классов в файле models/base.py и пути в документации
This commit is contained in:
parent
5525af0b26
commit
c096613e08
|
|
@ -1,9 +1,9 @@
|
||||||
# API Reference
|
# API Reference
|
||||||
|
|
||||||
## Модуль `models.map`
|
## Модуль `models.base`
|
||||||
|
|
||||||
```{eval-rst}
|
```{eval-rst}
|
||||||
.. automodule:: models.map
|
.. automodule:: models.base
|
||||||
:members:
|
:members:
|
||||||
:undoc-members:
|
:undoc-members:
|
||||||
:show-inheritance:
|
:show-inheritance:
|
||||||
|
|
@ -38,6 +38,39 @@ class Cell:
|
||||||
"""
|
"""
|
||||||
return not self.is_wall
|
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:
|
def __str__(self) -> str:
|
||||||
if self._is_wall:
|
if self._is_wall:
|
||||||
type_cell = "Стена"
|
type_cell = "Стена"
|
||||||
|
|
@ -66,14 +99,48 @@ class Maze:
|
||||||
]
|
]
|
||||||
|
|
||||||
def _check_point_in_map(self, x: int, y: int) -> bool:
|
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)
|
return (0 <= x < self._width) and (0 <= y < self._height)
|
||||||
|
|
||||||
def get_cell(self, x: int, y: int) -> Optional[Cell]:
|
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):
|
if not self._check_point_in_map(x, y):
|
||||||
return None
|
return None
|
||||||
return self._map[y][x]
|
return self._map[y][x]
|
||||||
|
|
||||||
def get_neighbors(self, x: int, y: int) -> Optional[list[Cell]]:
|
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_x = [0, 1, 0, -1]
|
||||||
vector_y = [1, 0, -1, 0]
|
vector_y = [1, 0, -1, 0]
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user