protected boolean bruteForceForPath(Place currentPlace, Place destinationPlace, LinkedList<Road> path, HashMap<String, Boolean> vis, int[] minLength, int currentLength)
	{
		String current = new String(currentPlace.getName());
		String destination = new String(destinationPlace.getName());
		String expectedKey = current+destination;
		
		if(currentLength > minLength[0])
		{
			//System.out.println("git");
			return false;
		}
		
		if(Empire.getInstance().ROADS.containsKey(expectedKey))
		{
			if(currentLength < minLength[0])
			{
				//System.out.println(currentLength);
				minLength[0] = currentLength;
				if(path.size() != 0)
				{
					path.removeAll(path);
				}
				path.addLast(Empire.getInstance().ROADS.get(expectedKey));
				return true;
			}
			else
			{
				return false;	
			}
			
		}
		{
			boolean bo = false;
			@SuppressWarnings("unused")
			int counter=0;
			Road shortest = null;
			for(String s : Empire.getInstance().CROSSROADS.keySet())
			{
				String next = s;
				if(((vis.get(next)) == Boolean.FALSE) && (Empire.getInstance().ROADS.containsKey(current+next)))
				{
					int cur = currentLength + Empire.getInstance().ROADS.get(current + next).getLength();
					vis.put(next, Boolean.TRUE);
					boolean bobo = bruteForceForPath(Empire.getInstance().CROSSROADS.get(s), destinationPlace, path, vis, minLength, cur);
					
					if (bobo == true)
					{
						
						shortest = Empire.getInstance().ROADS.get(current + next);
						bo = true;
						counter++;
					}
					vis.put(next, Boolean.FALSE);
				}	
			}
			if(bo==true)
			{
				path.addFirst(shortest);
				return true;
			}
		}
		
		return false;
	}