本文整理汇总了C++中Environment::DFS方法的典型用法代码示例。如果您正苦于以下问题:C++ Environment::DFS方法的具体用法?C++ Environment::DFS怎么用?C++ Environment::DFS使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Environment
的用法示例。
在下文中一共展示了Environment::DFS方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: buildEnvironment
//.........这里部分代码省略.........
env.addWall(Wall (15, 14, 0.0)); // 1
env.addWall(Wall (1, 15, 0.0)); // 2
env.addWall(Wall (2, 1, 0.0)); // 3
env.addWall(Wall (3, 2, 0.0)); // 4
env.addWall(Wall (5, 3, 0.0)); // 5
env.addWall(Wall (6, 5, 0.0)); // 6
env.addWall(Wall (7, 6, 0.0)); // 7
env.addWall(Wall (9, 7, 0.0)); // 8
env.addWall(Wall (10, 9, 0.0)); // 9
env.addWall(Wall (10, 11, 0.0)); // 10
env.addWall(Wall (15, 16, 0.0)); // 11
env.addWall(Wall (13, 11, 0.0)); // 12
env.addWall(Wall (11, 12, 0.0)); // 13
env.addWall(Wall (8, 7, 0.0)); // 14
env.addWall(Wall (0, 1, 0.0)); // 15
env.addWall(Wall (17, 0, 0.0)); // 16
env.addWall(Wall (3, 4, 0.0)); // 17
env.addWall(Wall (8, 12, INFINITY)); // 18
env.addWall(Wall (0, 6, INFINITY)); // 19
env.addWall(Wall (17, 4, INFINITY)); // 20
env.addWall(Wall (16, 13, INFINITY)); // 21
// Rooms
Room rA, rB, rC, rD, rE;
rA.setIdx(0);
rB.setIdx(1);
rC.setIdx(2);
rD.setIdx(3);
rE.setIdx(4);
// Room A
rA.addWall(0, 1);
rA.addWall(1, 1);
rA.addWall(11, -1);
rA.addWall(21, -1);
rA.addWall(12, -1);
rA.addWall(10, 1);
env.addRoom(rA);
// Room B
rB.addWall(8, 1);
rB.addWall(14, -1);
rB.addWall(18, 1);
rB.addWall(13, -1);
rB.addWall(10, -1);
rB.addWall(9, 1);
env.addRoom(rB);
// Room C
rC.addWall(2, 1);
rC.addWall(11, 1);
rC.addWall(21, 1);
rC.addWall(12, 1);
rC.addWall(13, 1);
rC.addWall(18, -1);
rC.addWall(14, 1);
rC.addWall(7, 1);
rC.addWall(19, -1);
rC.addWall(15, 1);
env.addRoom(rC);
// Room D
rD.addWall(3, 1);
rD.addWall(20, 1);
rD.addWall(16, -1);
rD.addWall(15, -1);
rD.addWall(17, -1);
rD.addWall(4, 1);
env.addRoom(rD);
// Room E
rE.addWall(17, 1);
rE.addWall(20, -1);
rE.addWall(16, 1);
rE.addWall(19, 1);
rE.addWall(6, 1);
rE.addWall(5, 1);
env.addRoom(rE);
Source src(rD, core::Pointf(5, 5));
env.setSource(src);
std::vector<std::vector<Environment::GraphNode> > adj;
adj.resize(env.getRooms().size());
env.buildAdjacencyGraph(adj);
env.DFS(adj, src.getInsideRoom().getRoomIdx());
env.filterValidPaths(2);
env.getValidPaths()->getNumberOfLeaves(env.getValidPaths()->_root, numberOfPaths);
env.getValidPaths()->getDepth(env.getValidPaths()->_root, maximumDepth, 0);
std::cout << numberOfPaths << " valid paths found" << std::endl;
std::cout << "Depth: " << maximumDepth << std::endl;
}