Ejemplo n.º 1
0
 def find_element(self, type_: Union[Element, str]) -> Optional[Point]:
     type_ = prepare_element(type_)
     for i in range(self._size * self._size):
         point = self.get_point_by_shift(i)
         if self.is_element_at(point, type_):
             return point
     return None
Ejemplo n.º 2
0
    def predict_figure_points_after_rotation(self,
                                             x: int = None,
                                             y: int = None,
                                             figure: Union[Element,
                                                           Text] = None,
                                             rotation: int = 0):
        # x, y - координата приходящая с сервера в 'currentFigurePoint' содержит координату новой фигурки.
        # [0, 0] - левый нижний угол фигуры
        # be aware: this method is experemental and can cause issues in edge cases
        # метод возвращает все точки Фигуры при rotation (1 == 90 градусам)
        # подробнее про rotation в методе get_shift_after_rotation
        if not x or not y or not figure:
            anchor: Point = self.get_current_figure_point()
            figure: Element = self.get_current_element()
        else:
            anchor: Point = Point(x, y)
            figure: Element = prepare_element(type_)

        return figure.get_all_coords_after_rotation(anchor, rotation)