// teniendo el grafo construido, determina el camino a seguir con menor coste desde la posicion del tanque // hasta la posicion destino. Es llamado al seleccionar la casilla a la que queremos que vaya el tanque public void resolveGame(int x, int y) { CleanInfo(); UpdateInfo(); flag.transform.position = tablero.getCasPos(x, y); // ponemos la bandera en el destino // creamos A* List <NodeCool> pq = new List <NodeCool>(); Astar astar = new Astar(); // la posicion de origen sera la posicion logica del tanque time = Time.realtimeSinceStartup; // contador de tiempo astar.Init(graph, ref pq, (int)(puzzle.TankPosition.GetColumn() + columns * puzzle.TankPosition.GetRow()), (int)(y + columns * x), H); time = Time.realtimeSinceStartup - time; expandedNodes = astar.GetExpandedNodes(); depth = astar.GetDepth(); memSize = astar.GetMemSize(); UpdateInfo(); // procesamos el camino dado por A* StartCoroutine(createPath(astar)); }