RTS2D
Métodos Públicos
Referência da Classe Graph

Contem rotinas usando grafos. Mais...

#include <Graph.h>

Lista de todos os Membros.

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.
NodenoPathDijkstra (Node *s, std::set< int > zones)
 Busca pelo no' mais proximo de s que possui mesma ZE a alguma do conjunto zones.
NodenoPathDijkstra2 (Node *s, Node *t)
 Busca pelo no' mais proximo de s que possui mesma ZE do no' t.
NodedijkstraBuild (Node *s, int buildType)
 Busca pelo no' mais proximo de s onde e' possivel construir um edificio do tipo buildType.
NodedijkstraEnemyBuilding (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.

Descrição Detalhada

Contem rotinas usando grafos.


Construtores & Destrutores

Graph::Graph ( std::vector< std::string >  mapMatrix)

Construtor.

Parâmetros:
mapMatrixMatriz do mapa

Métodos

bool Graph::astar ( Node s,
Node t 
)

Realiza busca do no' s ao no' t usando algoritmo A*.

Parâmetros:
sNo' s
tNo' t
Retorna:
true se encontrou caminho, false caso contrario
bool Graph::bfs ( Node s,
Node t 
)

Realiza busca do no' s ao no' t usando algoritmo BFS.

Parâmetros:
sNo' s
tNo' t
Retorna:
true se encontrou caminho, false caso contrario
bool Graph::dijkstra ( Node s,
Node t 
)

Realiza busca do no' s ao no' t usando algoritmo Dijkstra.

Parâmetros:
sNo' s
tNo' t
Retorna:
true se encontrou caminho, false caso contrario
Node * Graph::dijkstraBuild ( Node s,
int  buildType 
)

Busca pelo no' mais proximo de s onde e' possivel construir um edificio do tipo buildType.

Parâmetros:
sNo' s
buildTypeTipo do edificio
Retorna:
No' encontrado
double Graph::estimate ( Node s,
Node t 
)

Funcao de estimar a distancia entre o no' s ao no' t.

Retorna:
Valor estimado da distancia entre o no' s ao no' t
Retorna:
Matriz contendo as arestas de cada no' do grafo
Retorna:
Quantidade de colunas da matriz do grafo
Retorna:
Matriz de no's do grafo
int Graph::getRows ( )
Retorna:
Quantidade de linhas da matriz do grafo
std::map< int, int > Graph::getZoneEquivalency ( )
Retorna:
Map das zonas de equivalencia
bool Graph::groupDijkstra ( Node s,
std::vector< Node * >  t 
)

Realiza busca do no' s a um vetor de nos' t usando algoritmo Dijkstra.

Parâmetros:
sNo' s
tVetor de no's t
Retorna:
true se encontrou algum no', false caso contrario
void Graph::insertEdge ( Node v,
Node w,
float  cost 
)

Insere aresta do no' v ao no' w com custo cost.

Parâmetros:
vNo' v
wNo' w
costCusto da aresta
bool Graph::isInMapDimension ( int  x,
int  y 
)

Verifica se a posicao (x,y) esta nas dimensoes do mapa.

Parâmetros:
xCoordenada x
yCoordenada y
Retorna:
true se a posicao (x,y) esta nas dimensoes do mapa, false caso contrario
bool Graph::isInsertBuildingValid ( Node s,
int  buildType 
)

Verifica se e' possivel inserir um edificio do tipo buildType no no' s.

Parâmetros:
sNo' s
buildTypeTipo do edificio
Retorna:
true se for possivel inserir um edificio do tipo buildType no no' s, false caso contrario
void Graph::makeGraph ( std::vector< std::string >  mapMatrix)

Gera o grafo de acordo com o mapMatrix lido do arquivo.

Parâmetros:
mapMatrixMatriz 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.

Parâmetros:
sNo' s
zonesConjunto de zonas
Retorna:
No' encontrado
true se encontrou algum no', false caso contrario
Node * Graph::noPathDijkstra2 ( Node s,
Node t 
)

Busca pelo no' mais proximo de s que possui mesma ZE do no' t.

Parâmetros:
sNo' s
tNo' t
Retorna:
No' encontrado

A documentação para esta classe foi gerada a partir dos seguintes arquivos:
 Todos Classes Funções