From 89974bc0efa3f557fd81059112948a70aaa95773 Mon Sep 17 00:00:00 2001 From: "sigonasr2, Sig, Sigo" Date: Mon, 12 Dec 2022 15:56:55 +0000 Subject: [PATCH] Done! Co-authored-by: sigonasr2 --- C++ProjectTemplate | Bin 83304 -> 83304 bytes input | 82 +++++++++++++++++++++--------------------- main.cpp | 87 +++++++++++++++++++++++++++++---------------- 3 files changed, 98 insertions(+), 71 deletions(-) diff --git a/C++ProjectTemplate b/C++ProjectTemplate index 36df910fdff9fdd24b87e50f5606f93e30b80b69..ea43974d8fe0ca94c0dde26027683c73313ec606 100755 GIT binary patch delta 18726 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 +std::vectorpossibleStartingLocs; node*startNode; -node*endNode; +node *endNode; int main() { @@ -61,6 +62,9 @@ int main() for (int x=0;x0&&grid[y][x-1].getElevation()-1<=grid[y][x].getElevation()){ grid[y][x].connections.push_back(&grid[y][x-1]); } @@ -75,47 +79,70 @@ int main() } if (x==playerPos.x&&y==playerPos.y){ startNode=&grid[y][x]; - std::cout<<"Starting node set."<searchNodes; - searchNodes.push_back(startNode); - startNode->myDist=0.0f; - while (searchNodes.size()>0){ - node*currentNode=searchNodes.front(); - if (currentNode->visited){ - searchNodes.erase(searchNodes.begin()); - continue; + int bestPath=INFINITY; + node*testNode; + for (int l=0;lpos<visited=true; - for (int i=0;iconnections.size();i++){ - node*neighbor=currentNode->connections[i]; - if (!neighbor->visited){ - searchNodes.push_back(neighbor); + std::vectorsearchNodes; + searchNodes.push_back(testNode); + testNode->myDist=0.0f; + while (searchNodes.size()>0){ + node*currentNode=searchNodes.front(); + if (currentNode->visited){ + searchNodes.erase(searchNodes.begin()); + continue; } - float lowerGoal=currentNode->myDist+pow(neighbor->pos.x-currentNode->pos.x,2)+pow(neighbor->pos.y-currentNode->pos.y,2); - if (lowerGoalmyDist){ - neighbor->parent=currentNode; - neighbor->myDist=lowerGoal; + currentNode->visited=true; + for (int i=0;iconnections.size();i++){ + node*neighbor=currentNode->connections[i]; + if (!neighbor->visited){ + searchNodes.push_back(neighbor); + } + float lowerGoal=currentNode->myDist+pow(neighbor->pos.x-currentNode->pos.x,2)+pow(neighbor->pos.y-currentNode->pos.y,2); + if (lowerGoalmyDist){ + neighbor->parent=currentNode; + neighbor->myDist=lowerGoal; + } + } + } + node *searchNode = endNode; + bool completed=false; + int jumps=0; + while (searchNode!=testNode){ + if (searchNode->parent!=nullptr){ + //std::cout<<"Node goes from "<pos<<" to "<parent->pos<parent; + }else{ + break; + } + } + if (searchNode==testNode){ + if (jumpspos<<" to "<parent->pos<parent; - } - std::cout<<"Shortest path is "<