private boolean connected(Country a, Country b) {
		if (a == null || b == null) {
			return false;
		}
		if (a.getUnit().getArmy() != b.getUnit().getArmy()) {
			return false;
		}

		boolean[] visited = new boolean[42];

		Queue<Country> searchQ = new ArrayDeque<Country>();
		searchQ.add(a);
		while (!searchQ.isEmpty()) {
			Country top = searchQ.remove();

			if (top == b) {
				return true;
			}

			for (Country c : top.getConnections()) {
				if (c.getUnit().getArmy() == top.getUnit().getArmy()
						&& !visited[c.getId() - 1]) {
					searchQ.add(c);
					visited[c.getId() - 1] = true;
				}
			}
		}
		return false;
	}