@Override
	public void compute() {
		// A very simple AI
		boolean newShip = false;
		if (currentOpponentShip == null || currentOpponentShip.getMorphsByIds().size() == 0) {
			currentOpponentShip = findOpponentShip();
			newShip = true;
		}

		// iterate over the user's ships and send them all engage the opponent ship
		for (Ship ship : World.getWorld().getShips().values()) {
			if (ship.getOwner().equals(user)) {
				GoToShipAndEngage foundAI = null;
				for (AI ai : ship.getAIList()) {
					if (ai instanceof GoToShipAndEngage) {
						foundAI = (GoToShipAndEngage) ai;
					}
				}

				// FIXME This way of getting the targetted morph is dangerous
				if (foundAI == null) {
					foundAI = new GoToShipAndEngage(ship, currentOpponentShip.getMorphsByIds().values().iterator().next());
					ship.getAIList().add(foundAI);
				} else if (newShip) {
					foundAI.setTarget(currentOpponentShip.getMorphsByIds().values().iterator().next());
				}
			}
		}
	}