RTS2D
|
Contem rotinas usando grafos. Mais...
#include <Graph.h>
Métodos Públicos | |
Graph (std::vector< std::string > mapMatrix) | |
Construtor. | |
virtual | ~Graph () |
Destrutor. | |
int | getRows () |
int | getColumns () |
Node *** | getNode () |
Edge *** | getAdj () |
std::map< int, int > | getZoneEquivalency () |
void | makeGraph (std::vector< std::string > mapMatrix) |
Gera o grafo de acordo com o mapMatrix lido do arquivo. | |
void | insertEdge (Node *v, Node *w, float cost) |
Insere aresta do no' v ao no' w com custo cost. | |
void | show () |
Imprime grafo. | |
bool | bfs (Node *s, Node *t) |
Realiza busca do no' s ao no' t usando algoritmo BFS. | |
bool | dijkstra (Node *s, Node *t) |
Realiza busca do no' s ao no' t usando algoritmo Dijkstra. | |
bool | groupDijkstra (Node *s, std::vector< Node * > t) |
Realiza busca do no' s a um vetor de nos' t usando algoritmo Dijkstra. | |
Node * | noPathDijkstra (Node *s, std::set< int > zones) |
Busca pelo no' mais proximo de s que possui mesma ZE a alguma do conjunto zones. | |
Node * | noPathDijkstra2 (Node *s, Node *t) |
Busca pelo no' mais proximo de s que possui mesma ZE do no' t. | |
Node * | dijkstraBuild (Node *s, int buildType) |
Busca pelo no' mais proximo de s onde e' possivel construir um edificio do tipo buildType. | |
Node * | dijkstraEnemyBuilding (Node *s, int team) |
Busca pelo no' mais proximo de s do time inimigo, usado para IA decidir qual ponto atacar. | |
bool | isInsertBuildingValid (Node *s, int buildType) |
Verifica se e' possivel inserir um edificio do tipo buildType no no' s. | |
bool | isInMapDimension (int x, int y) |
Verifica se a posicao (x,y) esta nas dimensoes do mapa. | |
double | estimate (Node *s, Node *t) |
Funcao de estimar a distancia entre o no' s ao no' t. | |
bool | astar (Node *s, Node *t) |
Realiza busca do no' s ao no' t usando algoritmo A*. | |
void | setZone () |
Altera zonas de cada no' do grafo de acordo com a situacao atual. | |
void | setZone2 () |
Altera zonas de cada no' do grafo de acordo com a situacao atual, outro modo. |
Contem rotinas usando grafos.
Graph::Graph | ( | std::vector< std::string > | mapMatrix | ) |
Construtor.
mapMatrix | Matriz do mapa |
bool Graph::astar | ( | Node * | s, |
Node * | t | ||
) |
Realiza busca do no' s ao no' t usando algoritmo A*.
s | No' s |
t | No' t |
bool Graph::bfs | ( | Node * | s, |
Node * | t | ||
) |
Realiza busca do no' s ao no' t usando algoritmo BFS.
s | No' s |
t | No' t |
bool Graph::dijkstra | ( | Node * | s, |
Node * | t | ||
) |
Realiza busca do no' s ao no' t usando algoritmo Dijkstra.
s | No' s |
t | No' t |
Node * Graph::dijkstraBuild | ( | Node * | s, |
int | buildType | ||
) |
Busca pelo no' mais proximo de s onde e' possivel construir um edificio do tipo buildType.
s | No' s |
buildType | Tipo do edificio |
double Graph::estimate | ( | Node * | s, |
Node * | t | ||
) |
Funcao de estimar a distancia entre o no' s ao no' t.
Edge *** Graph::getAdj | ( | ) |
int Graph::getColumns | ( | ) |
Node *** Graph::getNode | ( | ) |
int Graph::getRows | ( | ) |
std::map< int, int > Graph::getZoneEquivalency | ( | ) |
bool Graph::groupDijkstra | ( | Node * | s, |
std::vector< Node * > | t | ||
) |
Realiza busca do no' s a um vetor de nos' t usando algoritmo Dijkstra.
s | No' s |
t | Vetor de no's t |
void Graph::insertEdge | ( | Node * | v, |
Node * | w, | ||
float | cost | ||
) |
Insere aresta do no' v ao no' w com custo cost.
v | No' v |
w | No' w |
cost | Custo da aresta |
bool Graph::isInMapDimension | ( | int | x, |
int | y | ||
) |
Verifica se a posicao (x,y) esta nas dimensoes do mapa.
x | Coordenada x |
y | Coordenada y |
bool Graph::isInsertBuildingValid | ( | Node * | s, |
int | buildType | ||
) |
Verifica se e' possivel inserir um edificio do tipo buildType no no' s.
s | No' s |
buildType | Tipo do edificio |
void Graph::makeGraph | ( | std::vector< std::string > | mapMatrix | ) |
Gera o grafo de acordo com o mapMatrix lido do arquivo.
mapMatrix | Matriz do mapa |
Node * Graph::noPathDijkstra | ( | Node * | s, |
std::set< int > | zones | ||
) |
Busca pelo no' mais proximo de s que possui mesma ZE a alguma do conjunto zones.
s | No' s |
zones | Conjunto de zonas |
Node * Graph::noPathDijkstra2 | ( | Node * | s, |
Node * | t | ||
) |
Busca pelo no' mais proximo de s que possui mesma ZE do no' t.
s | No' s |
t | No' t |