本文整理汇总了C++中AStar::getResultPath方法的典型用法代码示例。如果您正苦于以下问题:C++ AStar::getResultPath方法的具体用法?C++ AStar::getResultPath怎么用?C++ AStar::getResultPath使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AStar
的用法示例。
在下文中一共展示了AStar::getResultPath方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, const char * argv[])
{
AStar astar;
int rows = 20, columns = 20;
Tiles env(rows, columns);
random_device generator;
uniform_int_distribution<int> distribution(1,20);
vector<int> impassableNodes;
for (int i = 0; i < columns * rows; i++)
{
int dice_roll = distribution(generator);
if (dice_roll == 3)
{
impassableNodes.push_back(i);
}
}
cout << "blocks(" << impassableNodes.size() << "): ";
for (auto i : impassableNodes)
{
env.SetUntraverseable(i);
cout << i << ", ";
}
cout << endl;
std::uniform_int_distribution<int> startEndDistribution(0,rows * columns-1);
int start, end;
while (true) {
start = startEndDistribution(generator);
if (std::find(impassableNodes.begin(), impassableNodes.end(), start) == impassableNodes.end())
{
break;
}
}
while (true) {
end = startEndDistribution(generator);
if (std::find(impassableNodes.begin(), impassableNodes.end(), end) == impassableNodes.end())
{
break;
}
}
cout << "start = " << start << ", end = " << end << ";" << endl;
env.DrawMap(start, end);
std::cout<<"-----------\n\n\n\n";
astar.findPath(env, start, end);
// astar.findPath(env, 11, 18);
auto p = env.GetSmoothedPath(astar.getResultPath());
for (auto n : p)
{
cout << n << ", ";
}
cout << endl;
env.DrawSolution(p);
return 0;
}