def find_shortest_path_with_cartesian_coordinates(self, start_position: Position, goal_position: Position): start_position = Position(start_position.get_y_coordinate(), start_position.get_x_coordinate()) goal_position = Position(goal_position.get_y_coordinate(), goal_position.get_x_coordinate()) return self._find_shortest_path(start_position, goal_position)
def find_path_to_command_panel_zone(self, robot_position: Position) -> Path: position = self._game_table.get_puck_zone_center() position = Position( position.get_x_coordinate() - 45, position.get_y_coordinate() ) return ( self._shortest_path_algorithm.find_shortest_path_with_cartesian_coordinates( robot_position, position ) )
def _position_is_not_adjacent(self, position: Position): if len(self) < 1: return False path_last_position = self[-1] are_positions_adjacent_in_x = ( abs(position.get_x_coordinate() - path_last_position.get_x_coordinate()) == 1) are_positions_adjacent_in_y = ( abs(position.get_y_coordinate() - path_last_position.get_y_coordinate()) == 1) return not are_positions_adjacent_in_x != are_positions_adjacent_in_y
def take_x_coordinate(position: Position) -> int: return position.get_x_coordinate()
def _are_positions_moving_horizontally(self, first_position: Position, second_position: Position) -> bool: return (abs(first_position.get_x_coordinate() - second_position.get_x_coordinate()) == 1)