private void FightBattle(Planet p) {

		Map<Integer, Integer> participants = new TreeMap<Integer, Integer>();

		participants.put(p.Owner(), p.NumShips());

		Iterator<Fleet> it = fleets.iterator();
		while (it.hasNext()) {
			Fleet f = it.next();
			if (f.TurnsRemaining() <= 0 && GetPlanet(f.DestinationPlanet()) == p) {
				if (!participants.containsKey(f.Owner())) {
					participants.put(f.Owner(), f.NumShips());
				} else {
					participants.put(f.Owner(), f.NumShips() + participants.get(f.Owner()));
				}
				it.remove();
			}
		}

		Fleet winner = new Fleet(0, 0);
		Fleet second = new Fleet(0, 0);
		for (Map.Entry<Integer, Integer> f : participants.entrySet()) {
			if (f.getValue() > second.NumShips()) {
				if (f.getValue() > winner.NumShips()) {
					second = winner;
					winner = new Fleet(f.getKey(), f.getValue());
				} else {
					second = new Fleet(f.getKey(), f.getValue());
				}
			}
		}

		if (winner.NumShips() > second.NumShips()) {
			p.NumShips(winner.NumShips() - second.NumShips());
			p.Owner(winner.Owner());
		} else {
			p.NumShips(0);
		}
	}