package logica;
import java.util.ArrayList;
import java.util.List;
import models.casilla.Casilla;
import org.jgrapht.Graph;
import org.jgrapht.GraphPath;
import org.jgrapht.alg.DijkstraShortestPath;
import org.jgrapht.graph.DefaultEdge;
public class Grafo {
private Casilla[] casillas;
private Graph<Casilla, DefaultEdge> grafo;
public Grafo(Casilla[] casillas) {
this.casillas = casillas;
grafo = GrafoFactory.crearGrafo(casillas);
}
public List<Integer> getDestinos(int inicio, int tirada){
List<Integer> destinos = new ArrayList<Integer>();
for (int i = 0; i < casillas.length; i++) {
DijkstraShortestPath<Casilla, DefaultEdge> dijkstra = new DijkstraShortestPath<Casilla, DefaultEdge>(
grafo, casillas[inicio], casillas[i]);
GraphPath<Casilla, DefaultEdge> path = dijkstra.getPath();
if (path.getWeight() == tirada)
destinos.add(i);
}
return destinos;
}
}