def get_possible_moves(current_state: State, env_config: EnvironmentConfiguration) -> List[Edge]: current_vertex_name = current_state.get_current_vertex_name() vertexes_dict = env_config.get_vertexes() edges_dict = {k: v for k, v in env_config.get_edges().items() if k not in env_config.get_blocked_edges()} current_vertex = vertexes_dict[current_vertex_name] names_of_edges = [edge for edge in current_vertex.get_edges() if edge not in env_config.get_blocked_edges()] possible_edges = [] for edge_name in names_of_edges: possible_edges.append(edges_dict[edge_name]) return possible_edges
def print_environment(env_config: EnvironmentConfiguration): num_of_vertex = env_config.get_vertices_num() deadline = env_config.get_deadline() edges_dict = env_config.get_edges() vertexes_dict = env_config.get_vertexes() print(EnvironmentUtils._NUMBER_OF_VERTICES_PREFIX + EnvironmentUtils._SPACE_SEPARATOR + str( num_of_vertex)) print(EnvironmentUtils._DEADLINE_PREFIX + EnvironmentUtils._SPACE_SEPARATOR + str(deadline)) for vertex in vertexes_dict.values(): EnvironmentUtils.__print_vertex(vertex) for edge in edges_dict.values(): EnvironmentUtils.__print_edge(edge) print("Blocked edges: ", env_config.get_blocked_edges())