public void shortestPath(int s){
		if(current == null){
			int index = (int)(Math.random()*graph.vertexes.size());
			current = graph.vertexes.get(index);
			showCurrentCity();
		}
		cities = graph.vertexes;
		City c = null;
		for(City d: graph.vertexes){
			if(d.id == s){
				c = d;
			}
		}
		if(c == null){
			System.out.println("Destination city not found");
		}else if(c.equals(current)){
			System.out.println("That City is also your start point...");
			System.out.println("Total Cost: $" + "$0.0");
		}
		else{
			City q = c;
			ArrayList<City> path = new ArrayList<City>();
			path.add(c);
			graph.dijkstra(current);
			if(c.edgeCost != POSITIVE_INFINITY){
				System.out.println("Total Cost: $" + c.edgeCost);
				System.out.println(c.name);
				while(!(current == c.path)){
					path.add(c.path);
					c = c.path;
				}
				Collections.reverse(path);
				System.out.println("Total Stops (Excluding Start): " + path.size());
				for(City d: path){
					System.out.println(d.path.name + ", " + d.path.state + "  -  " + "$" + d.path.costFP);
				}
				System.out.println(q.name + ", " + q.state + "  -  " + "$" + q.costFP);
			}else{
				System.out.println("No Route Via Directed Edges");
			}
		}
	}