code: public IslandSelection createNonConflictingVersion() {
          List<Island> possibleIslands;
          do {
              possibleIslands = selection.getPossibleIslands();
              // check the possible islands of a certain size against each other.
              if (possibleIslands.size() == 1) {
                  selection.addIsland(possibleIslands.get(0));
              } else if (possibleIslands.size() > 1) {
                  Map<IslandCompetition, List<Island>> analysis = analyzeConflictsBetweenPossibleIslands(possibleIslands);
                  resolveConflictsBySelectingPreferredIslands(selection, analysis);
              }
          }
          while (!possibleIslands.isEmpty());
          return selection;
      }
docs: /*
  Create a non-conflicting version by simply taken all the islands that do
  not conflict with each other, largest first.