-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.cpp
More file actions
120 lines (111 loc) · 2.89 KB
/
Copy pathmain.cpp
File metadata and controls
120 lines (111 loc) · 2.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#include "graph.h"
#include <fstream>
graph g;
int main(int argc, char const *argv[])
{
// First floor
g.AddVertex({0,0});
g.AddVertex({0,1});
g.AddVertex({0,2});
g.AddVertex({0,3});
g.AddVertex({0,5});
g.AddVertex({1,0});
g.AddVertex({1,1});
g.AddVertex({1,2});
g.AddVertex({1,3});
g.AddVertex({1,5});
g.AddVertex({2,0});
g.AddVertex({2,1});
g.AddVertex({2,2});
g.AddVertex({2,3});
g.AddVertex({2,4});
g.AddVertex({2,5});
g.AddVertex({3,0});
g.AddVertex({3,1});
g.AddVertex({3,2});
g.AddVertex({3,3});
g.AddVertex({3,4});
g.AddVertex({3,5});
g.AddVertex({4,2});
g.AddVertex({4,3});
g.AddVertex({4,4});
g.AddVertex({4,5});
g.AddVertex({4,5});
g.AddVertex({5,1});
g.AddVertex({5,2});
g.AddVertex({5,3});
g.AddVertex({5,4});
g.AddVertex({5,5});
g.AddEdge({0,0}, {0,1}, 1);
g.AddEdge({0,0}, {1,0}, 1);
g.AddEdge({0,1}, {0,2}, 1);
g.AddEdge({0,1}, {1,1}, 1);
g.AddEdge({0,2}, {0,3}, 1);
g.AddEdge({0,2}, {1,2}, 1);
g.AddEdge({0,3}, {1,3}, 1);
g.AddEdge({0,5}, {1,5}, 1);
g.AddEdge({1,0}, {1,1}, 1);
g.AddEdge({1,1}, {2,1}, 1);
g.AddEdge({1,2}, {1,3}, 1);
g.AddEdge({1,3}, {2,3}, 1);
g.AddEdge({1,5}, {2,5}, 1);
g.AddEdge({2,0}, {2,1}, 1);
g.AddEdge({2,0}, {3,0}, 1);
g.AddEdge({2,1}, {2,2}, 1);
g.AddEdge({2,1}, {3,1}, 1);
g.AddEdge({2,2}, {3,2}, 1);
g.AddEdge({2,3}, {2,4}, 1);
g.AddEdge({2,4}, {2,5}, 1);
g.AddEdge({2,4}, {3,4}, 1);
g.AddEdge({2,5}, {3,5}, 1);
g.AddEdge({3,0}, {3,1}, 1);
g.AddEdge({3,1}, {3,2}, 1);
g.AddEdge({3,2}, {3,3}, 1);
g.AddEdge({3,2}, {4,2}, 1);
g.AddEdge({3,3}, {4,3}, 1);
g.AddEdge({3,4}, {4,4}, 1);
g.AddEdge({4,2}, {4,3}, 1);
g.AddEdge({4,2}, {5,2}, 1);
g.AddEdge({4,3}, {4,4}, 1);
g.AddEdge({4,3}, {5,3}, 1);
g.AddEdge({4,4}, {4,5}, 1);
g.AddEdge({4,4}, {5,4}, 1);
g.AddEdge({4,5}, {5,5}, 1);
g.AddEdge({5,1}, {5,2}, 1);
g.AddEdge({5,2}, {5,3}, 1);
g.AddEdge({5,3}, {5,4}, 1);
g.AddEdge({5,4}, {5,5}, 1);
std::cout << "Numero vertici: " << g.NumVertices() << std::endl;
std::cout << "Numero angoli: " << g.NumEdges() << std::endl;
std::cout << "-- Graph --\n";
g.PrintGraph();
std::cout << "-- Map --\n";
g.PrintMaze();
std::cout << "-- A* --\n";
std::vector<Tile> path;
int len;
g.FindPathAStar({0,0}, {3,0}, path, len, 0);
std::cout << "Total weigth: ";
std::cout << len << std::endl;
g.PrintMazePath(path);
std::cout << "Path vector: ";
for (int i = 0; i < path.size(); i++)
{
std::cout << path.at(i) << std::endl;
}
g.ChangeTileAdjacencyListWeight({1,1}, 5);
g.PrintGraph();
g.RemoveTileAdjacencyList({1,1});
g.PrintGraph();
g.FindPathAStar({0,0}, {3,0}, path, len, 0);
std::cout << "Total weigth: ";
std::cout << len << std::endl;
g.PrintMazePath(path);
std::cout << "Path vector: ";
for (int i = 0; i < path.size(); i++)
{
std::cout << path.at(i) << std::endl;
}
g.PrintMaze({0,0,0});
return 0;
}