Exemple #1
0
 def test_calc_risk_level(self):
     cave = build_cave(10, 10, 510)
     self.assertEqual(calc_risk_level(10, 10, cave), 114)
def main():
    cave = build_cave(TARGET_X, TARGET_Y, CAVE_DEPTH)
    pf = PathFinder(cave, TARGET_X, TARGET_Y)
    pf.find_quickest_path()
    return pf.known_shortest_path
    target_key = (target_x, target_y, Equipment.TORCH)
    while unvisited_nodes and target_key in unvisited_nodes:
        current_key = (current_node.x, current_node.y, current_node.equipment)
        for neighbor, edge_distance in current_node.neighbors:
            if neighbor.visited:
                continue
            neighbor.distance = min(neighbor.distance,
                                    current_node.distance + edge_distance)

        print(f'marking {current_key=} as visited')
        current_node.visited = True
        visited_nodes[current_key] = current_node
        del unvisited_nodes[current_key]
        if unvisited_nodes:
            current_node = sorted(list(unvisited_nodes.values()),
                                  key=lambda node: node.distance)[0]
        else:
            current_node = None
    return visited_nodes[target_key].distance


# toy with these if your answer is wrong...maybe going a bit wide and deep around will help
EXTRA_X = 50
EXTRA_Y = 100

if __name__ == '__main__':
    cave = build_cave(TARGET[0], TARGET[1], DEPTH, EXTRA_X, EXTRA_Y)
    unvisited_nodes = create_dijkstra_nodes(cave, TARGET[0], TARGET[1],
                                            EXTRA_X, EXTRA_Y)
    print(find_shortest_path_dijkstra(unvisited_nodes, TARGET[0], TARGET[1]))
Exemple #4
0
def main():
    cave = build_cave(TARGET_X, TARGET_Y, CAVE_DEPTH)
    pf = PathFinderBFS(cave, TARGET_X, TARGET_Y)
    return pf.find_quickest_path()
 def setUp(self):
     self.test_cave = build_cave(TEST_TARGET_X, TEST_TARGET_Y,
                                 TEST_CAVE_DEPTH)