Tim§id€ Posted November 29, 2016 at 10:14 PM Report Share #600942 Posted November 29, 2016 at 10:14 PM Boas malta, estou a desenvolver uma aplicação para a disciplina de Programação avançada, onde o programa consiste num jogo de Grafos. Terei de criar varios minijogos Grafo<Local,Ligacao> onde cada Local (Vertex) tem pelo menos uma ligação entre si, e Ligação(Edge) terá distancia, custo, e o tipo de ligacao. É me pedido para calcular o percurso mais pequeno, onde usei o algoritmo dijkstra dentro da implementação do grafo. Até aqui tudo bem, dou dois vertices inicio e fim, e ele da-me o valor mais pequeno. A duvida surge, é pedido para usar o padrão strategy para alterar o algoritmo de procura( dijkstra) para as diferentes estrategias: 1.minimizar numero de arestas percorridas. 2.minimizar valor da viagem. 3. distancia percorrida. Criei a interfece strategy e mais 3 classes (arestas,valorViagem,Distancia) mas não sei como implementar agora a interface Strategy para usar o dijkstra Obrigado ...º(>_<)º... Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted November 29, 2016 at 10:33 PM Report Share #600944 Posted November 29, 2016 at 10:33 PM (edited) public interface Strategy { int getDistance(Local a, Local b); } public class ArestasStrategy implements Strategy { int getDistance(Local a, Local b) { // implement } } public class ValorStrategy implements Strategy { int getDistance(Local a, Local b) { // implement } } public class DistanciaStrategy implements Strategy { int getDistance(Local a, Local b) { // implement } } public class Grafo { List<Ligacao> applyDijkstra(Local inicio, Local final, Strategy strategy) [ // implement } } Grafo grafo; Local inicio; Local fim; // create grafo List<Ligacao> caminho = grafo.applyDijkstra(inicio, fim, new DistanciaStrategy()); agora preenche as brancas ... isto é só como implementar o Design Pattern Edited November 29, 2016 at 10:35 PM by HappyHippyHippo alterado "Node" para "Local" para ficar de acordo com a nomenclatura do post original 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Tim§id€ Posted November 29, 2016 at 10:59 PM Author Report Share #600946 Posted November 29, 2016 at 10:59 PM Olá @HappyHippyHippo obrigado, eu tinha feito igual até ao teu public class Grafo obrigado vou tentar ver o que vai sair de aqui 😄 ...º(>_<)º... Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now